PythonでOpenPyXLを使いExcelのグラフを作成する〜Chart関連オブジェクトの紹介〜


こんにちは。@katsuhisa__です。

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

連載一記事目はこちら。

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

前回は、OpenPyXLを使いExcelの行と列を固定する設定方法をご紹介しました。

今回から二回に分けて、PythonでOpenPyXLを使いExcelのグラフを作成する方法を紹介します!初回となる今回は、サンプルコードの紹介と、グラフに関連するオブジェクトについてご説明いたします。

スポンサーリンク

OpenPyXlでExcelのグラフを作成する

早速、OpenPyXlでExcelのグラフを作成する一連の流れを学びましょう。

今回は、OpenPyXL公式ドキュメントにあるサンプルコードを理解できることを目指します。

Charts — openpyxl 2.5.15 documentation
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ファイルを見てみましょう。

グラフが作成されたことが確認できました。

for文の中でappend()を使い、サンプルデータを入力している箇所は、本記事では詳細解説しません。(グラフ作成をつくるのと関係がないサンプルデータを入れているだけの箇所なので・・・)

append()の詳細な挙動が気になった方は以下から公式ドキュメントをどうぞ。

openpyxl.worksheet.worksheet module — openpyxl 3.1.2 documentation

Chartオブジェクト、Referenceオブジェクト、Seriesオブジェクトの関係

さて、前述のサンプルコードの後半部分に注目しましょう。まずはじめに、パッケージのインポートを行っています。

from openpyxl.chart import BarChart, Reference, Series

本記事では、それぞれのインポートしているパッケージで構成するオブジェクトの概要について紹介します。

Chartオブジェクト

Chartオブジェクトは、文字通り、グラフを生成するオブジェクトです。

上記サンプルコードでは、サブモジュールであるBarChart(棒グラフ)をインポートして利用しています。
OpenPyXLでは、BarChartに限らず、

  • PieChart(円グラフ)
  • LineChart(折れ線グラフ)
  • ScatterChart(散布図)

など、Excelで使用できる様々なグラフを同様に利用できます。

Referenceオブジェクト

Referenceオブジェクトは、範囲選択したセルのオブジェクトだとご理解ください。
ちなみにOpenPyXLのソースコードには、Referenceオブジェクトは、

Normalise cell range references

である、と書かれています。英語が得意な方は、より正確な解釈をして覚えておいていただけるとよいかと思います。

実際にコードを書く上では、範囲選択したセルのオブジェクト、という内容をご理解いただければ問題ありません。

Seriesオブジェクト

Seriesオブジェクトが何かを探るには、Chartオブジェクトを深く知ったほうが理解が深まります

Chartオブジェクトですが、公式ドキュメントには、以下の説明が書いてあります。

Charts are composed of at least one series of one or more data points. Series themselves are comprised of references to cell ranges.

つまり、Chartオブジェクトは、最低一つのSeriesオブジェクトによって構成されており、また、Seriesオブジェクトは、選択範囲のセルで構成されているということです。

先程、Referenceオブジェクトが、範囲選択したセルのオブジェクトだと書きましたが、Seriesオブジェクトは、Referenceオブジェクトを渡すことでつくることができることを意味します。

さいごに

以上、OpenPyXLでグラフをつくるときに必要なChartに関連するオブジェクトの説明でした。

次回記事では、同じサンプルコードを見ながら、具体的なグラフのつくり方について詳細解説します。
なお、予習を進めたい方は、『退屈なことはPythonにやらせよう』をお買い求めください。

本連載の更新情報は、管理人のタカハシ(@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のグラフを作成する〜グラフのつくりかた編〜

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