openpyxl 折线图:如何为线条分配随机标记?

问题描述 投票:0回答:1

我设法创建了一个几乎符合我的要求的简单折线图:

c1 = opxl.chart.LineChart()
c1.style = 2
data = opxl.chart.Reference(wsh, min_col=2, min_row=24, max_col=maxc, max_row=29)
labels = opxl.chart.Reference(wsh, min_col=1, min_row=25, max_col=1, max_row=29)
c1.add_data(data, titles_from_data=True)
c1.set_categories(labels)
c1.height = 8.75
c1.width = 20
wsh.add_chart(c1,"A4")

这会使用我的数据生成这样的图表: enter image description here

现在,我希望每条线都有不同的标记(正方形、三角形、圆形、X 等)。 我知道如何逐个系列地进行操作,但是根据我的数据,系列的数量可能会有所不同,并且我无法逐个进行,我需要一种自动标记。 Excel 可以做到这一点。 我尝试使用最多 15 个的所有样式编号,但它们似乎只影响线条的调色板。数字 2 和 10 给出了一些自动的各种颜色,这正是我所需要的。

有人知道如何自动设置线标记吗?

谢谢!

charts openpyxl
1个回答
0
投票

您当然可以循环并将添加到图表的所有系列的标记设置为自动

c1 = opxl.chart.LineChart()
c1.style = 2

data = opxl.chart.Reference(wsh, min_col=2, min_row=24, max_col=maxc, max_row=29)
labels = opxl.chart.Reference(wsh, min_col=1, min_row=25, max_col=1, max_row=29)
c1.add_data(data, titles_from_data=True)
c1.set_categories(labels)

### Add auto marker for each series that the chart has
for s in c1.series:
    s.marker = opxl.chart.marker.Marker('auto')

c1.height = 8.75
c1.width = 20
wsh.add_chart(c1,"A4")
© www.soinside.com 2019 - 2024. All rights reserved.