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

PythonのXlsxWriterモジュールを使ってExcelシートにレーダーチャートを作成する方法

レーダーチャートとは

レーダーチャート(Radar Chart)は、同じ起点から放射状に伸びる複数の軸上に3つ以上の定量データを配置し、それらを線で結ぶことで多変量データを2次元上に視覚化するグラフ手法です。各項目のバランスや傾向をひと目で比較できるため、評価項目の分析や性能比較などに広く活用されています。

PythonのXlsxWriterモジュールを使用すると、Excelファイルに直接このようなレーダーチャートを挿入できます。XlsxWriterがインストールされていない場合は、事前に以下のコマンドでインストールしておいてください。

pip install XlsxWriter

実装例:Excelシートへのレーダーチャート挿入

以下のコードでは、サンプルデータをワークシートに書き込み、そのデータをもとにしたレーダーチャートを作成してセル「E2」の位置に挿入しています。

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

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

# workbookオブジェクトに対してadd_worksheet()メソッドを呼び出し、
# 新しいワークシートを追加します。
worksheet = workbook.add_worksheet()

# add_format()メソッドを使って、セルの書式を定義するFormatオブジェクトを作成します。
# ここでは太字フォーマットのオブジェクトを作成します。
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'を起点に、太字フォーマットで見出し行を書き込みます。
worksheet.write_row('A1', headings, bold)

# 各列のデータを順番に書き込みます。
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

# add_chart()メソッドを使って、ワークシートに追加可能なチャートオブジェクトを作成します。
# ここではタイプを'radar'に指定して、レーダーチャートオブジェクトを生成します。
chart1 = workbook.add_chart({'type': 'radar'})

# add_seriesメソッドでチャートにデータ系列を追加します。
# 最初の系列を設定します。
# '=Sheet1!$A$1'のような文字列指定は、['Sheet1', 0, 0]と同等です。
chart1.add_series({
    'name':       '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':     '=Sheet1!$B$2:$B$7',
})

# 2番目の系列を設定します。
# 範囲を定義するもう一つの記法(リスト形式)を使用した例です。
# [シート名, 開始行, 開始列, 終了行, 終了列] の順に指定します。
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)

# チャートをワークシートに挿入します。
# チャートの左上隅はセル'E2'に固定されます。
worksheet.insert_chart('E2', chart1)

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

コードのポイント

このスクリプトの処理の流れは以下の通りです。

  • ワークブックとワークシートの作成: Workbook()で新規Excelファイルを生成し、add_worksheet()でシートを追加します。
  • データの書き込み: write_row()で見出しを行方向に、write_column()で各系列の値を列方向に書き込みます。
  • チャートの生成: add_chart()に{'type': 'radar'}を渡すことで、レーダーチャートオブジェクトを作成します。
  • 系列の追加: add_series()では、A1表記の文字列または[シート名, 行, 列]形式のリストのどちらでも範囲を指定できます。
  • 見た目の調整: set_title()・set_x_axis()・set_y_axis()でラベルを設定し、set_style()でスタイルを適用します。
  • チャートの挿入: insert_chart()でチャートのアンカー位置を指定し、close()でファイルを確定保存します。

スクリプトを実行すると、カレントディレクトリにchart_radar1.xlsxが生成され、開くと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