Python 自動化

python-pptxでグラフの凡例ごとに色を固定する方法

この記事は約4分で読めます。

 

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】

Python pptx custom color for each category
I'm looking at example here: chart_data = ChartData() chart_data.categories = ['West', 'East', 'North', 'So...
Python pptx: how to find and delete the empty or unpopulated placeholders
I have created a presentation using python-pptx. However, some slides have the empty placeholders with default text click to add title/text that looks like the ...

 

関連記事:【Python】python-pptxでパワポのスライドに色々なグラフを追加する

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

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

タイトルとURLをコピーしました