python-pptxでグラフの凡例ごとに色を固定する方法について紹介したいと思います
Python-pptxの基本的な使い方については下記参照
関連記事:【Python】python-pptxでパワポの資料作成を自動化する
凡例の色を指定する方法
グラフの凡例を色を指定する方法は、chart.series[i].format.line.color.rgbの形式で凡例の色を指定することができます。具体的には、以下のように書くことができます。
chart = slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data ) chart.has_legend = True # 判例を表示する chart.legend.format.fill.solid() # 判例の背景色を指定 chart.legend.format.fill.fore_color.rgb = RGBColor(100, 100, 100) # 判例の背景色をRGB値で指定(例:グレー)
サンプルコード全体
以下は円グラフで2種類の凡例に対して固定のカラーコードを指定してプロットしています。
from pptx.chart.data import ChartData, CategoryChartData, XyChartData, BubbleChartData
from pptx.util import Cm, Pt
from pptx import Presentation
from pptx.dml.color import RGBColor
prs = Presentation()
layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(layout)
# 凡例の色コードを16進数で指定する
pie_color_list = ["F15B47", "0067c0"]
chart_data = ChartData()
chart_data.categories = ['アリ','ナシ' ]
chart_data.add_series("Pie", (60, 40))
chart = prs.slides[-1].shapes.add_chart(
XL_CHART_TYPE.PIE,
x,
y,
cx,
cy,
chart_data
).chart
for idx, point in enumerate(chart.series[0].points):
col_idx = idx % len(pie_color_list)
point.format.fill.solid()
point.format.fill.fore_color.rgb = RGBColor.from_string(pie_color_list[col_idx])
chart.font.size = Pt(6)
chart.font.name = 'LexusRodin Pro B'
chart.has_legend = True
chart.has_title = True
chart.chart_title.has_text_frame = True
chart.chart_title.text_frame.text = 'グラフのタイトル'
chart.chart_title.text_frame.paragraphs[0].font.size = Pt(10)
chart.plots[-1].has_data_labels = True
data_labels = chart.plots[0].data_labels
prs.save('sample_with_chart.pptx')
色の指定はpie_color_list = [“F15B47”, “0067c0”]の部分で指定しており、16進数のカラーコードの#以降の部分を指定することで変更可能です。
<実行結果>
アリが赤、ナシが青になるような円グラフが生成されます

【参考URL】
Attention Required! | Cloudflare
Attention Required! | Cloudflare
関連記事:【Python】python-pptxでパワポのスライドに色々なグラフを追加する

コメント
[…] 関連記事:python-pptxでグラフの凡例ごとに色を固定する […]