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

2024-10-01 19:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python中使用xlsxwriter。我已经创建了一些图表但是颜色不匹配。我试图根据工作需要设置颜色,但是legend colors不匹配。 我需要生成第二列green,但在图例部分,它变成红色。这是我拿到的图表- enter image description here

以下是我正在使用的代码:

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)

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


Tags: nameadddata颜色chart图表fillsheet
1条回答
网友
1楼 · 发布于 2024-10-01 19:29:06

I am trying to set colors as required for my work, however, the legend colors are not matched.

这样做的原因是,您正在为数据的“点”而不是整个系列设置格式。所以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()

输出:

enter image description here

相关问题 更多 >

    热门问题