XlsxWriter - 图表列和图例颜色不匹配

Posted

技术标签:

【中文标题】XlsxWriter - 图表列和图例颜色不匹配【英文标题】:XlsxWriter - Chart Column and Legend Color Mismatch 【发布时间】:2019-03-21 21:53:47 【问题描述】:

我正在与xlsxwriterpython 合作。我创建了一些图表,但是颜色不匹配。我正在尝试根据工作需要设置颜色,但是 legend colors 不匹配。 我需要制作第二列green,但在图例部分它会变成红色。这是我得到的图表-

这是我正在使用的代码:

chart8 = workbook.add_chart('type': 'column')

chart8.add_series('name':'RO',
                   'categories': [sheet_name, a, 0, b, 0],
                   'values':     [sheet_name, a, 1, b, 1],
                   'data_labels': 'value': True, 
                   'points':['fill': 'color': 'blue','transparency':30, 
                             'fill': 'color': 'blue','transparency':30])

chart8.add_series('name':'Planning',
                   'categories': [sheet_name, a, 0, b, 0],
                   'values':     [sheet_name, a, 2, b, 2],
                   'data_labels': 'value': True, 
                   'points':['fill': 'color': 'lime','transparency':20, 
                             'fill': 'color': 'lime','transparency':20])

chart8.set_legend('position': 'bottom')

worksheet.insert_chart('G'+str(a), chart8)

worksheet.insert_chart(0, 6, chart8)

我试图找到原因,但找不到太多。为什么会发生这种情况,我该如何解决?

【问题讨论】:

【参考方案1】:

我正在尝试根据工作需要设置颜色,但是图例颜色不匹配。

这样做的原因是您正在为数据的“点”而不是整个系列设置格式。所以 Excel 在图例中仍然显示默认的系列格式。

修复很简单,您只需为整个系列指定“填充”,而不仅仅是系列中的点:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()


# Write some data to add to plot on the chart.
worksheet.write_column('A1', ['New', 'Site'])
worksheet.write_column('B1', [8, 7])
worksheet.write_column('C1', [22, 9])

# Create a new Chart object.
chart8 = workbook.add_chart('type': 'column')

# Set the sheet values.
sheet_name = 'Sheet1'
a = 0
b = 1

chart8.add_series('name':'RO',
                   'categories': [sheet_name, a, 0, b, 0],
                   'values': [sheet_name, a, 1, b, 1],
                   'data_labels': 'value': True,
                   'fill': 'color': 'blue', 'transparency': 30)

chart8.add_series('name':'Planning',
                   'categories': [sheet_name, a, 0, b, 0],
                   'values': [sheet_name, a, 2, b, 2],
                   'data_labels': 'value': True,
                   'fill': 'color': 'lime', 'transparency': 20)

chart8.set_legend('position': 'bottom')

worksheet.insert_chart(0, 6, chart8)

workbook.close()

输出:

【讨论】:

谢谢!这完全奏效了!我不得不为其他一些图表使用点数。我没有意识到我正在为他们所有人这样做。 对于 Excel 中的饼图和 Doughtnut 样式图表,您需要使用点来定义单独的颜色。但是 Excel 中的所有其他图表类型都使用系列。您仍然可以使用点来设置非饼图的各个元素,但这种用法很少见。

以上是关于XlsxWriter - 图表列和图例颜色不匹配的主要内容,如果未能解决你的问题,请参考以下文章

在R中创建具有匹配颜色和线形的图例

如何在使用 ggplot2 制作的单个图中组合填充(列)和颜色(点和线)图例?

为啥我的 Dojo 图表中的图例没有显示颜色?

更改 excel 图表图例颜色而不影响系列

不同的颜色图表

剑道图表图例:左边的标签,右边的颜色