集合縦棒グラフと積み上げ縦棒グラフは、縦棒グラフの2つの代表的な形式です。集合縦棒グラフは、複数のカテゴリ間で値を比較するのに適しており、積み上げ縦棒グラフはカテゴリごとの合計値とその内訳の割合を視覚的に把握するのに便利です。 この記事では、Spire.XLS for Python を使用して、Python で Excel ワークシートに集合縦棒グラフまたは積み上げ縦棒グラフを作成する方法をご紹介します。 Python で Excel に集合縦棒グラフを作成する方法 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 に積み上げ縦棒グラフを作成する方法 積み上げ縦棒グラフの作成手順は、集合縦棒グラフとほぼ同じです。異なる点は、グラフの種類を 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() 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。