【Python】openpyxlでExcelにグラフを作成する方法

PythonでExcelに書かれているデータから表を作成する方法を紹介します。これができると見やすい表を作れること間違いなしですね。

グラフを作るときにはいろんなオブジェクトが登場します。グラフのタイトルや位置やサイズをどのオブジェクトに持たせるのかを確認しながら進めていきましょう。

これから紹介するコードは以下のコードの続きになると考えてください。シートまで開いた状態からのスタートになります。

PythonでExcelにグラフを張り付ける4STEP

全体のコードは以下のようになります。このコードを上から順に解説していきます。また、今回グラフにするデータは画像を確認してください。

元のデータ

STEP1.データ領域を指定

  • Referenceオブジェクトを作成
  • 引数にワークシートとデータ領域を渡す
  • データ領域は一行または一列
min_col行の最小値
max_col行の最大値
min_row列の最小値
max_row列の最大値

行や列の指定は数値で行い、列名もA列から順に1、2とカウントします。

指定するデータ領域が1行か1列でないと正しくグラフが表示されません。

STEP2.グラフタイトルを指定

  • Seriesオブジェクトを作成
  • 引数にReferenceオブジェクトとタイトルを渡す
    • タイトルは無くてもOK

ここで決めたタイトルが凡例にも使われます。タイトルを設定しなかった場合の凡例は「系列1」と表示されます。完成形は下の画像で確認できます。

STEP3.グラフの種類を決める&追加

  • Chartオブジェクトを作成
    • グラフの種類によってクラス名が異なる(下表)
  • ChartオブジェクトにSeriesオブジェクトを追加

グラフの種類

クラス名によってグラフの種類が変わります。データに適したグラフを選びましょう。

Chartクラス名グラフの種類
AreaChart線グラフの領域に色が塗られている
AreaChart3D上のグラフの3Dバージョン
LineChart線グラフ
LineChart3D上のグラフの3Dバージョン
StockChart見た目は線グラフと変わらず
RedarChartレーダーチャート
多角形のグラフ
ScatterChart不明
PieChart円グラフ
PieChart3D上のグラフの3Dバージョン
DoughnutChart真ん中がくりぬかれた円グラフ
BarChart棒グラフ
BarChart3D上のグラフの3Dバージョン
ProjectedPieChart円グラフの比較?
SurfaceChartエラーは出ないが表示されない
SurfaceChart3D上のグラフの3Dバージョン
BubbleChart不明

不明と書いているところは今回紹介している方法でエラーが出たものになります。エラーが解消でき次第追記します。

STEP4.グラフをシートに張り付ける

  • Worksheetオブジェクトにグラフを張り付ける
  • add_chartメソッドを使う
    • 引数はChartオブジェクトと張り付ける位置
    • 位置は行列名で指定(なくてもOK)

このコードではグラフの貼り付け位置に「D4」を指定したので、グラフの左上の角が「D4」に来ます。完成形は以下の画像で確認できます。

もし位置を指定しない場合は適当なところに張り付けられます。

必ず保存してからファイルを開いてください。そうしないとグラフが張り付けられません。

グラフの張り付け完了

まとめ

今回はグラフの張り付け方を見ていきました。他にも凡例やマーカーなど細かいところを指定できそうなので分かり次第追記します。

あとは、データが悪くあまり変化のないグラフになってしまったので訂正版を追加したいと思います。

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]