Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのXlsxWriterモジュールでExcelシートに折れ線グラフを作成する方法

折れ線グラフ(line chart)とは、一連のデータポイントを連続的な線で結ぶことで、資産の過去の価格変動を視覚的に表現したグラフです。金融分野で最も基本的なチャート形式であり、通常は証券の終値のみを時間の経過に沿って描画します。

PythonのXlsxWriterモジュールを使えば、プログラムからExcelファイル(.xlsx)を生成し、ワークシートに折れ線グラフをはじめとするさまざまなグラフを挿入することができます。

XlsxWriterのインストール

まだインストールしていない場合は、pipコマンドで簡単に導入できます。

pip install XlsxWriter

サンプルコード

以下のコードは、データをワークシートに書き込み、そのデータをもとに折れ線グラフをExcelシートに挿入する例です。

# xlsxwriterモジュールをインポート
import xlsxwriter

# Workbook()は必須引数として、作成したいファイル名を受け取ります
workbook = xlsxwriter.Workbook('chart_Line.xlsx')

# workbookオブジェクトを使い、add_worksheet()メソッドで新しいワークシートを追加します
worksheet = workbook.add_worksheet()

# add_format()メソッドでセルの書式を設定するFormatオブジェクトを作成します
# ここでは太字(bold)フォーマットを作成しています
bold = workbook.add_format({'bold': 1})

# データリストを作成
headings = ['Number', 'Batch 1', 'Batch 2']
data = [
    [2, 3, 4, 5, 6, 7],
    [80, 80, 100, 60, 50, 100],
    [60, 50, 60, 20, 10, 20],
]

# 太字フォーマットを適用して'A1'から1行分の見出しを書き込みます
worksheet.write_row('A1', headings, bold)

# 'A2'・'B2'・'C2'からそれぞれ1列分のデータを書き込みます
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

# add_chart()メソッドでワークシートに追加できるチャートオブジェクトを作成します
# ここでは折れ線グラフ(line)オブジェクトを作成しています
chart1 = workbook.add_chart({'type': 'line'})

# add_series()メソッドでチャートにデータ系列を追加します
# 最初の系列を設定。'=Sheet1!$A$1' は ['Sheet1', 0, 0] と同等の意味です
# 注意: '='と'Sheet1'、'Sheet1'と'!'の間にスペースを入れると警告が出るため、
# スペースは挿入しないでください
chart1.add_series({
    'name':       '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':     '=Sheet1!$B$2:$B$7',
})

# 2番目の系列を設定します
# 範囲の指定には別の記法(A1表記ではなくリスト形式)を使用しています
# 書式: [sheetname, first_row, first_col, last_row, last_col]
chart1.add_series({
    'name':       ['Sheet1', 0, 2],
    'categories': ['Sheet1', 1, 0, 6, 0],
    'values':     ['Sheet1', 1, 2, 6, 2],
})

# グラフのタイトルを追加
chart1.set_title({'name': 'Results of data analysis'})

# X軸のラベルを追加
chart1.set_x_axis({'name': 'Test number'})

# Y軸のラベルを追加
chart1.set_y_axis({'name': 'Data length (mm)'})

# Excelのグラフスタイルを設定
chart1.set_style(11)

# 指定したオフセット値付きでグラフをワークシートに挿入します
# グラフの左上隅はセルD2に固定され、そこから右に25px・下に10pxずれます
worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10})

# 最後にclose()メソッドでExcelファイルを閉じて保存します
workbook.close()

コードのポイント解説

  • ワークブックとワークシートの作成: Workbook()にファイル名を渡してワークブックを生成し、add_worksheet()で作業対象となるシートを追加します。
  • データの書き込み: write_row()は見出しを行方向に、write_column()は各系列のデータを列方向に書き込みます。
  • 系列の追加: add_series()では、系列名・カテゴリ(X軸)・値(Y軸)を指定します。文字列による「=Sheet1!$B$2:$B$7」のようなA1参照形式でも、['Sheet1', 行, 列] のようなリスト形式でも範囲を定義できます。
  • グラフの装飾: set_title()・set_x_axis()・set_y_axis()でタイトルや軸ラベルを設定し、set_style()でExcel標準のスタイルを適用します。
  • グラフの挿入: insert_chart()の第3引数でオフセットを指定すると、基準セル(D2)からの位置を細かく調整できます。

このスクリプトを実行すると、カレントディレクトリに「chart_Line.xlsx」が生成されます。ファイルを開くと、A1〜C7に書き込まれたデータテーブルと、セルD2付近に配置された2系列の折れ線グラフが確認できます。

  1. PythonのXlsxWriterモジュールでExcelワークシートにグラフを挿入する方法

    Pythonには標準ライブラリ以外にも、個人開発者によって作られた優れた外部ライブラリが数多く存在し、Pythonにさまざまな追加機能をもたらしています。XlsxWriterもそのひとつで、Pythonプログラムのデータを含むExcelファイルを作成できるだけでなく、グラフ(チャート)の作成にも対応しています。 円グラフの作成手順 以下の例では、xlsxwriterを使って円グラフを作成します。処理の流れは以下のとおりです。 まずワークブックを定義し、その後にワークシートを追加します。 次にプロットするデータを定義し、Excelファイルのどの列にデータを書き込むかを指定します。 その列を参照

  2. PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】

    Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins