こんにちは。@katsuhisa__です。
PythonのOpenPyXLモジュールを使い、面倒で退屈なExcel作業をPythonで自動化する方法をお伝えする連載の十一記事目です!
連載一記事目はこちら。
前回は、OpenPyXLでExcelのグラフを作成するために利用するChartオブジェクトをご紹介しました。
今回は、具体的にグラフのつくり方について詳細をご説明いたします。
OpenPyXlでExcelのグラフを作成する
まずは、前回のサンプルコードを再度見てみましょう。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
for i in range(10):
ws.append([i])
from openpyxl.chart import BarChart, Reference, Series
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
chart.add_data(values)
ws.add_chart(chart, "E15")
wb.save("SampleChart.xlsx")
作成されたExcelファイルはこちら。
前回は、Chartオブジェクト、Referenceオブジェクト、Seriesオブジェクトの使い方をご紹介しましたが、それぞれを組み合わせてグラフをつくる一連の流れについてはご説明しませんでした。
今回は、上記コードの解説をしながら、具体的にOpenPyXLでグラフをつくる方法をご説明します。
OpenPyXLでグラフをつくる方法
OpenPyXLでグラフをつくるには、以下3つのステップに大別されます。
- グラフの種類を決める
- グラフが読み込むデータを決める
- グラフをつくる
それぞれ解説します。
グラフの種類を決める
chart = BarChart()
前回、Chartオブジェクトについてご説明しましたが、Chartオブジェクトには、グラフの種類ごとにサブモジュールが用意されており、利用したいサブモジュールをインポートして利用します。
今回は、上記のサンプルコードからもわかるように、BarChart(棒グラフ)をインポートして利用しています。
Chartオブジェクトは、様々な属性を持っており、グラフのタイトルを変更したり、グラフ自体の大きさを変更することもできます。
例えば、以下のように書くことができます。
chart1 = BarChart()
chart1.title = "棒グラフ"
chart1.y_axis.title = 'Test number'
chart1.x_axis.title = 'Sample length'
グラフが読み込むデータを決める
次に、グラフが読み込むデータを決めます。サンプルコードでは、以下の部分がそれに該当します。
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart.add_data(values)
前回、Referenceオブジェクトをご紹介しましたが、Referenceオブジェクトによって、範囲選択したセルのオブジェクトをつくります。
Chartオブジェクトのadd_dataメソッドで、Referenceオブジェクトで指定したデータを追加します。
ちなみに、add_dataメソッドは、titles_from_dataという引数を指定することができます。titles_from_data=Trueを指定すると、指定したデータ領域の先頭行を、グラフのラベルとして使用することができます。
デフォルトでは、Falese(無効)になっています。
グラフをつくる
最後にグラフをつくりましょう。これはかんたんですね。
ws.add_chart(chart, "E15")
ワークブックオブジェクトは、add_chartというメソッドを持っており、add_chartを使用すれば、指定した位置にChartオブジェクトを配置することができます。
上記サンプルコードでは、E15に、chartを置く、といった具合です。
さいごに
以上、OpenPyXLでExcelのグラフをつくる方法でした。
さて、これでOpenPyXLの基本的な使い方は一通りがすべて完了しました。次は、みなさんご自身が実際にOpenPyXLでExcel業務を効率化していく番です。
すべてのExcel業務をOpenPyXLで自動化していくのではなく、まずは繰り返し発生している手作業などに注目し、OpenPyXLを適用する範囲を見定めていくとよいでしょう。
では、長らく連載をお読みいただき、ありがとうございました。新しい連載にご期待ください!
新しい連載の更新情報は、管理人のタカハシ(@ntakahashi0505)さんのTwitterアカウントや、もちろん私のアカウント(@katsuhisa__)で配信していくので、もしよければ、フォローをお願いします!
書籍『Pythonでかなえる Excel作業効率化』発売のお知らせ
この連載が『Pythonでかなえる Excel作業効率化』という本になりました! Pythonの使い方の基本からだけでなく、Pythonでオフィス業務を効率化するために必要な知識をたくさん詰め込みました!ぜひお買い求めください。連載目次:PythonでExcelを操作するモジュールOpenPyXL
OpenPyXLというモジュールを使うことでPythonでExcelファイルを操作することができます。本シリーズでは初心者向けにExcelファイルの作業をPythonで自動化する方法をお伝えします。- PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
- OpenPyXLで複数のセルの値を取得する方法
- OpenPyXLでExcelファイルの新規作成・保存を行う方法
- PythonでOpenPyXLを使ってExcelのシートを追加・削除する方法
- PythonでOpenPyXLでExcelのセルに値を入力する方法と編集する方法
- PythonでOpenPyXLを使いExcelのフォントを設定する方法
- PythonでOpenPyXLを使いExcelに数式を入力する方法
- PythonでOpenPyXLを使いExcelの行と列について色々な設定をする方法
- PythonでOpenPyXLを使いExcelの行と列を固定する方法
- PythonでOpenPyXLを使いExcelのグラフを作成する〜Chart関連オブジェクトの紹介〜
- PythonでOpenPyXLを使いExcelのグラフを作成する〜グラフのつくりかた編〜
コメント
いつも素晴らしい記事をありがとうございます。
本で読んでいて億劫でやらなかった部分が分かりやすく書かれていて感動しました!
次回のpythonの記事の更新も楽しみにしています!
yyy さま
ご丁寧にありがとうございます!嬉しいです!
公開したら、Twitter で情報を流します!