きれいなグラフを簡単に作成できるアプリを作ってみた【環境不要】【体裁調整可能】

GUIで作成した散布図IT

データ処理を行う方はcsvファイルを元にグラフを作成する方が多いと思います。グラフ作成アプリ自体は多くありますが、自分の好みに応じて体裁を設定可能なものがなかったので作成してみました。Windowsの方は、exeファイルを用いれば追加の環境設定は不要です。

実行ファイル

実行ファイル(.exe)をzip化したものになります。exe化には「cx_Freeze」を用いました。exeファイルはGoogle driveのリンクを貼ります。buildファイルがzip圧縮されたものなので、お使いのWindows環境で展開してください。

build.zip

テストデータとして用いた「tabledata.csv」も載せておきます。

操作例

Excelよりも簡単にグラフ作成可能

Excelファイルを開いてデータ列を選ぶだけ

csvデータ
使用したtabledata.csv

上のような表形式のExcelデータ(拡張子.csv)を例にグラフ作成テストを行いました。1行目がヘッダ(見出し)で、2行目以降が各データになります。

操作画面説明

動画にあるように、ファイルを選択するとデータが読み込まれるので(①)、X軸・Y軸にするデータを選択して(②)、「Scatter Plot」を選択すれば散布図の出来上がりです(③)。

「Scatter Plot」を繰り返し押すと重ね描きされていくので、前のプロットを消したい場合にはリセットボタンを押します(④)。グラフの体裁を調整したい場合は左下のオプションを調整します(⑤)。

(グラフの体裁オプションを変更してプロットした後で、再び体裁を変更しても反映されない場合があります。その場合は体裁オプションを修正した後で一度グラフ初期化(④)を行います。)

Data1,Data2があるのは、フォーマットが違うファイルからプロットできるようにするためです。(Data1でも同じ形式であれば複数ファイルを選択できますが、形式が違うとエラーが生じます。)

実現したかったこと

私が本プログラムを作成したのは、Excelでグラフを作成して体裁を整えるのが面倒くさいと思ったことがきっかけです。

Excelマクロを使ったりPythonなどの言語でプログラムを書くことはできるのですが、

・ちょっとX軸・Y軸データからグラフを書きたい、

・でも発表スライドに載せられるくらいの体裁は整えたい

と思うことが大学・会社で度々ありました。

もちろん世の中にはExcelで扱うcsvファイルからグラフを作成するツールがいくつも存在していますが、

・確認用には使えるものの体裁が整っていないグラフを作成するツール

・体裁の整ったグラフは作成できるものの設定する条件の多いツール

などが多いと感じました。

大学の研究室ではIgorという有料ソフトを用いており、マクロ機能を使って複雑なグラフも作成可能でしたが、多くの方はそこまで多くの機能がなくても、きれいなグラフを簡単にかけるフリーソフトがあれば十分だと思いました。

Python環境がある方は以前のカラープロットの記事のようにコードを書くことでグラフをかけますが、毎回似たようなグラフを描くならexeファイルのほうが断然簡単だと思います。

手法: PythonのTkinter

機械学習などで近年多く使用されているPythonというプログラミング言語でGUIを作成するツール「Tkinter」を用いました。視覚的に操作できるようにすることで、どなたでも使えるようになると良いと思いました。

ソースコード

今後ソースコードの中身について別記事でご紹介させていただくかもしれません。

参考にしたgitコードは以下になります。

GitHub - ShisatoYano/CsvDataAnalyzer: This is a visualization ans analysis GUI tool for csv file.
This is a visualization ans analysis GUI tool for csv file. - GitHub - ShisatoYano/CsvDataAnalyzer: This is a visualization ans analysis GUI tool for csv file.

今回用いたライブラリはnumpy,matplotlib,pandas(いずれもBSDライセンス)です。

最後に

散布図を簡単に描画できるアプリの作成に挑戦してみましたが、想像以上に難しいと感じました。体裁をもう少し整えたかったのですが、体裁を直すと動作しなくなるバグが生じてしまったこともあって詰めきれませんでした。

機能追加したバージョンや、コードの詳細についても今後記事にできれば良いと思っています。

コメント

タイトルとURLをコピーしました