PythonでOpenPyXLを使いExcelのグラフを作成する〜グラフのつくりかた編〜


こんにちは。@katsuhisa__です。

PythonのOpenPyXLモジュールを使い、面倒で退屈なExcel作業をPythonで自動化する方法をお伝えする連載の十一記事目です!

連載一記事目はこちら。

PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
Excel 間でのセルをコピーしたり、退屈な作業を、Pythonで自動化してみませんか?OpenPyXLを使えば、PythonでかんたんにExcel 作業を実現できます。本記事では、PythonでExcelファイルを操作するモジュールOpenPyXLのはじめての使い方(初心者向け)についてご紹介します!

前回は、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つのステップに大別されます。

  1. グラフの種類を決める
  2. グラフが読み込むデータを決める
  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作業効率化
Excelは全ビジネスマン必須のアプリケーションですが,操作がめんどうだと感じたことはありませんか? 本書は,「Python」というプログラミング言語を使って,そんなめんどうな業務を自動化・効率化する方法を紹介します。プログラミングがはじめ...

連載目次:PythonでExcelを操作するモジュールOpenPyXL

OpenPyXLというモジュールを使うことでPythonでExcelファイルを操作することができます。本シリーズでは初心者向けにExcelファイルの作業をPythonで自動化する方法をお伝えします。
  1. PythonでExcel作業を自動化するOpenPyXLのはじめての使い方
  2. OpenPyXLで複数のセルの値を取得する方法
  3. OpenPyXLでExcelファイルの新規作成・保存を行う方法
  4. PythonでOpenPyXLを使ってExcelのシートを追加・削除する方法
  5. PythonでOpenPyXLでExcelのセルに値を入力する方法と編集する方法
  6. PythonでOpenPyXLを使いExcelのフォントを設定する方法
  7. PythonでOpenPyXLを使いExcelに数式を入力する方法
  8. PythonでOpenPyXLを使いExcelの行と列について色々な設定をする方法
  9. PythonでOpenPyXLを使いExcelの行と列を固定する方法
  10. PythonでOpenPyXLを使いExcelのグラフを作成する〜Chart関連オブジェクトの紹介〜
  11. PythonでOpenPyXLを使いExcelのグラフを作成する〜グラフのつくりかた編〜

コメント

  1. yyy より:

    いつも素晴らしい記事をありがとうございます。
    本で読んでいて億劫でやらなかった部分が分かりやすく書かれていて感動しました!
    次回のpythonの記事の更新も楽しみにしています!

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