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)
是否可以更改与在 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)