Python 更改图表图例颜色 - Openpyxl

Python Changing Chart Legend Colors - Openpyxl

是否可以更改与在 Openpyxl 中创建的图表的图例关联的颜色?

我已经使用我的数据创建了一个相对简单的图表,但我想强制使用它用于创建每个部分的颜色。这是我与图表相关的代码片段:

chart = PieChart()
data = Reference(worksheet, min_col=2, min_row=4, max_row=7, max_col=2)
categories = Reference(worksheet, min_col=1, min_row=4, max_row=7, max_col=1)

chart.add_data(data)
chart.set_categories(categories)

worksheet.add_chart(chart, 'D3')

更改颜色最简单的方法是通过样式更改配色方案:

chart.style = 5

还有另外两种我没有研究过的方法,但您可以使用更晦涩的方法修改颜色。

第一个是通过这个class中的一个成员:

openpyxl.ledgend.Legend

希望分配 GraphicalProperties 的 spPr 成员,您可以修改它以更改颜色。

第二种可能性是创建自己的样式并使用前面提到的命令分配它。

如果您想更改图例中每个系列的颜色,您应该使用如下方式更改情节中每个系列的线条颜色:

series.graphicalProperties.line.solidFill = Color

from openpyxl.chart import ScatterChart, Reference, Series

# Set up basic XY Scatter Chart
chart = ScatterChart()
chart.title = "Scatter Chart"
chart.style = 2 # Excel menu chart tools: Design > Chart Styles > picked second style

# setup the X-axis series (A2:A7). Notice that header is excluded in range by starting on row 2.
xvalues = Reference(ws, min_col=1, min_row=2, max_row=7)

# setup, style and append the first series (B1:B7)
values = Reference(ws, min_col=2, min_row=1, max_row=7)
series = Series(values, xvalues, title_from_data=True)
series.smooth = True
series.graphicalProperties.line.width = 50000
series.graphicalProperties.line.solidFill = 'FF0000' # Red
chart.append(series)