チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.XLS for Python»グラフ»Python:Excel ファイルに縦棒グラフを作成する方法
2025-05-23

Python:Excel ファイルに縦棒グラフを作成する方法

集合縦棒グラフ積み上げ縦棒グラフは、縦棒グラフの2つの代表的な形式です。集合縦棒グラフは、複数のカテゴリ間で値を比較するのに適しており、積み上げ縦棒グラフはカテゴリごとの合計値とその内訳の割合を視覚的に把握するのに便利です。

この記事では、Spire.XLS for Python を使用して、Python で Excel ワークシートに集合縦棒グラフまたは積み上げ縦棒グラフを作成する方法をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で Excel に集合縦棒グラフを作成する方法

ワークシートにグラフを追加するには、Worksheet.Chart.Add(ExcelChartType chartType) メソッドを使用します。ExcelChartType 列挙体には、Microsoft Excel にあらかじめ定義されているさまざまな種類のグラフが含まれています。

以下は、Spire.XLS for Python を使って集合縦棒グラフを作成する手順です:

  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets.get_Item(index) プロパティを使用して特定のワークシートを取得します。
  • 指定したセルにデータを書き込みます。
  • Worksheet.Chart.Add(ExcelChartType.ColumnClustered) メソッドを使って、ワークシートに集合縦棒グラフを追加します。
  • Chart.DataRange プロパティを使用して、グラフのデータ範囲を設定します。
  • Chart オブジェクトのプロパティを通じて、グラフの位置、タイトル、その他の属性を設定します。
  • Workbook.SaveToFile() メソッドを使用して、Excel ファイルとして保存します。
from spire.xls import *
from spire.xls.common import *

# Workbook オブジェクトを作成
workbook = Workbook()

# 最初のシートを取得
sheet = workbook.Worksheets.get_Item(0)

# グラフ用データを設定
sheet.Range.get_Item("A1").Value = "製品"
sheet.Range.get_Item("A2").Value = "綾鷹"
sheet.Range.get_Item("A3").Value = "午後の紅茶"
sheet.Range.get_Item("A4").Value = "伊右衛門"
sheet.Range.get_Item("A5").Value = "麦茶"

sheet.Range.get_Item("B1").Value = "店舗 A"
sheet.Range.get_Item("B2").NumberValue = 30000
sheet.Range.get_Item("B3").NumberValue = 45000
sheet.Range.get_Item("B4").NumberValue = 28000
sheet.Range.get_Item("B5").NumberValue = 52000
sheet.Range.get_Item("C1").Value = "店舗 B"
sheet.Range.get_Item("C2").NumberValue = 40000
sheet.Range.get_Item("C3").NumberValue = 35000
sheet.Range.get_Item("C4").NumberValue = 39000
sheet.Range.get_Item("C5").NumberValue = 41000

# セルスタイルの設定
sheet.Range.get_Item("A1:C1").RowHeight = 15
sheet.Range.get_Item("A1:C1").Style.Color = Color.get_Black()
sheet.Range.get_Item("A1:C1").Style.Font.Color = Color.get_White()
sheet.Range.get_Item("A1:C1").Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range.get_Item("A1:C1").Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.AutoFitColumn(1)

# グラフをシートに追加
chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)

# グラフのデータ範囲を設定
chart.DataRange = sheet.Range.get_Item("A1:C5")
chart.SeriesDataFromRange = False

# グラフの位置を設定
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# グラフのタイトルを設定
chart.ChartTitle = "店舗別ソフトドリンク売上"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 軸タイトルを設定
chart.PrimaryCategoryAxis.Title = "製品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "売上"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 系列の色・重なり・間隔・データラベルを設定
series = chart.Series
for i in range(series.Count):
    cs = series.get_Item(i)
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.Overlap = -50
    cs.Format.Options.GapWidth = 350
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# 凡例の位置を設定
chart.Legend.Position = LegendPositionType.Top

# ファイルを保存
workbook.SaveToFile("output/集合縦棒グラフ.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Pythonで作成したExcelの集合縦棒グラフの例

Python で Excel に積み上げ縦棒グラフを作成する方法

積み上げ縦棒グラフの作成手順は、集合縦棒グラフとほぼ同じです。異なる点は、グラフの種類を ColumnClustered ではなく ColumnStacked に変更する必要があることです。

  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets.get_Item(index) プロパティを使用して特定のワークシートを取得します。
  • 指定したセルにデータを書き込みます。
  • Worksheet.Chart.Add(ExcelChartType.ColumnStacked) メソッドを使って、ワークシートに積み上げ縦棒グラフを追加します。
  • Chart.DataRange プロパティを使用して、グラフのデータ範囲を設定します。
  • Chart オブジェクトのプロパティを通じて、グラフの位置、タイトル、その他の属性を設定します。
  • Workbook.SaveToFile() メソッドを使用して、Excel ファイルとして保存します。
from spire.xls import *
from spire.xls.common import *

# Workbook オブジェクトを作成
workbook = Workbook()

# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)

# グラフ用データを設定
sheet.Range.get_Item("A1").Value = "製品"
sheet.Range.get_Item("A2").Value = "綾鷹"
sheet.Range.get_Item("A3").Value = "午後の紅茶"
sheet.Range.get_Item("A4").Value = "伊右衛門"
sheet.Range.get_Item("A5").Value = "麦茶"

sheet.Range.get_Item("B1").Value = "店舗 A"
sheet.Range.get_Item("B2").NumberValue = 30000
sheet.Range.get_Item("B3").NumberValue = 45000
sheet.Range.get_Item("B4").NumberValue = 28000
sheet.Range.get_Item("B5").NumberValue = 52000

sheet.Range.get_Item("C1").Value = "店舗 B"
sheet.Range.get_Item("C2").NumberValue = 40000
sheet.Range.get_Item("C3").NumberValue = 35000
sheet.Range.get_Item("C4").NumberValue = 39000
sheet.Range.get_Item("C5").NumberValue = 41000

# セルのスタイルを設定
sheet.Range.get_Item("A1:C1").RowHeight = 15
sheet.Range.get_Item("A1:C1").Style.Color = Color.get_Black()
sheet.Range.get_Item("A1:C1").Style.Font.Color = Color.get_White()
sheet.Range.get_Item("A1:C1").Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range.get_Item("A1:C1").Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.AutoFitColumn(1)

# グラフを追加(積み上げ縦棒グラフ)
chart = sheet.Charts.Add(ExcelChartType.ColumnStacked)

# グラフのデータ範囲を設定
chart.DataRange = sheet.Range.get_Item("A1:C5")
chart.SeriesDataFromRange = False

# グラフの位置を設定
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# グラフのタイトルを設定
chart.ChartTitle = "店舗別ソフトドリンク売上"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 軸タイトルを設定
chart.PrimaryCategoryAxis.Title = "製品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "売上"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 系列の色・間隔・データラベルを設定
series = chart.Series
for i in range(series.Count):
    cs = series.get_Item(i)
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.GapWidth = 270
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Inside

# 凡例の位置を設定
chart.Legend.Position = LegendPositionType.Top

# ファイルを保存
workbook.SaveToFile("output/積み上げ縦棒グラフ.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Spire.XLS for Pythonを使って生成した積み上げ縦棒グラフ

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 19 times