Tkinterとopenpyxlの使い方
2020/01/26追記:プログラミング初心者に向けたpythonの勉強法と手順を記事にしました。
■はじめに
以前、
②選んだCSVファイル内の数値データを抽出してExcelシートに書き込み、
③新規Excelファイルとして保存する一連の流れを紹介しました。
また上記を拡張して複数のCSVを同時に処理する方法も紹介しました。
今回この続きになります。
本記事では、グラフ(今回は散布図)も自動で作成する方法を紹介します。
■コード
コードを実行すると、いつものように次の画面がでてきます。
右側の開くボタンを押すと選択画面がでてきます。今回はデスクトップに置いてある「data_test.csv」を開きます、またdata_test.csvは右画面にように上から2行目までは説明文で、3行目から数値データが始まるファイルとします。(実験データを意識してます)
開くを押すとデスクトップにファイル名が作成日のExcelファイルが作成されます。開くと次のような画面になります。ちゃんとセルにデータが格納されており、また散布図が自動で作成されたのが確認できます。
以上で終わりです。
散布図が自動で作成できると、いちいち1つ1つグラフを作成する必要がなくなるので大幅な時短になりそうです。
■説明
まず必要なモジュールをインポートしましょう。特にopenpyxlでグラフも作成したい場合、次の2行は必須です。(グラフを作成するつもりがないなら1行目だけでOKです)
ここでScatterChartとは散布図のことです。例えば棒グラフの場合はBarChartとします。以下に主要なグラフの名前を挙げておきます。
- 散布図:ScatterChart
- 棒グラフ:BarChart
- 折れ線グラフ:LineChart
- 円グラフ:PieChart
- レーダーチャート:RadarChart
になります。それ以外にも3D図なども書けます。
次にグラフの作成に入ります。
1行目ではchartという変数に散布図ScatterChart()を代入しています。
2行目はグラフのタイトルになります。
3行目と4行目は軸のタイトルになります。例えばx軸が時間でy軸を距離にしたい場合は、3行目に時間[s]、4行目に距離[m]と入れてください。
次にデータを入れていきます。
まず1行目ではグラフのx軸のデータを何にするかを決めています。
カッコ内のwsは最初の方に書いた次の変数wsになります。つまり今作ったExcelシートを参照するよっという意味になります。min_col=1はシートの1列目を参照するという意味です。min_row=2, max_row=len(data_1)+1)は2行目から7行目(len(data_1)=6なので)まで参照するという意味になります。
また次のy軸とするデータも書き方はx軸と全く同じです。1つだけ違うのはmin_row=1になっていることです。つまり1行目も参照するということです。1行目は数値ではなく文字が書かれています。後で紹介しますがここで1行目の文字まで含めておくことで、グラフのタイトルを自動で入れることができます。
次に、グラフのx軸をy軸の組み合わせを決めます。Series(y軸にしたい値、x軸にしたい値)の順に書きます。最後のtitle_from_data=Trueにすると、先ほどy軸のデータを決めるとき含めた1行目の文字がグラフ名として自動で設定されます。今回2列目1行目は物理量A(単位)としているので、図の右側のハイライトした部分が物理量A(単位)になっています。
次にマーカーの形などを決めていきます。ここは任意です、なくても構いません。
次にグラフをシートに追加します。
今回はセルA10の位置からグラフを表示しました。
以上が1つの列(今回は2列目)をグラフ化する方法です。今回3列目にもデータがあるのでfor文を使って2列目と3列目のグラフを作成しています。
■自分が使ってるお得情報の紹介
私はAmazon kindle unlimitedというサービスを1年以上利用しています。
これは月額980円で 和書12万冊以上の電子書籍を読めるサービスです。
ビジネス本、雑誌、漫画、技術本など様々な本を読むことができます。10冊まで端末にダウンロードできるのでネット環境がなくても(オフラインでも)見れます。
なおkindle unlimitedは最初の30日間無料のため、気軽に登録してみて、あまり読みたい本が無ければすぐに解約しても問題ありません。
それか30日内に気になる本を全て読破すれば実質タダです。
ぜひ気になった方はチェックしてみて下さい。
なおkindleにない本等を買う時はamazonギフト券(amazonで使えるポイント)を買い、ポイントで数冊まとめて買った方がお得です。
ギフト券(ポイント)は買ったら10年も有効で、ポイントが付きます。さらに本をまとめ買い(2冊以上同時に)買うと、ポイントがもらえます。
(https://www.amazon.co.jp/b?ie=UTF8&node=5431437051)
学生さんであればkindle unlimitedよりも年2450円(月210円程度)で映画見放題、音楽聞き放題、本読み放題の「prime student」がおすすめです。
以下に私がkindle unlimitedで読んだ本を載せておきます。
■雑誌系
Tarzan(ターザン) 2020年1月23日号 No.779 [内臓脂肪 皮下脂肪すっきり落とす!] [雑誌]
- 作者:
- 出版社/メーカー: マガジンハウス
- 発売日: 2020/01/04
- メディア: Kindle版
■最後に
今回、CSVからデータを抽出するだけでなく、散布図も自動で作成する方法を紹介しました。ただグラフのデザイン等も指定できればより便利になりそうなので、今度紹介できればと思います。
またその他のグラフ等についてもopenpyxlの公式サイトに記載されています。リンクを張って良いのかわからないので張りませんが、気になる方はグーグルで調べるとすぐ出てくるので見てみて下さい。英語のサイトですが、chromeで開けば自動翻訳できるのでそこまで苦労しないと思います。
次記事