XlsxWriter - 图表列和图例颜色不匹配
XlsxWriter - Chart Column and Legend Color Mismatch
我在 python
与 xlsxwriter
一起工作。我创建了一些图表,但是颜色不匹配。我正在尝试根据工作需要设置颜色,但是 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)
我试图找到原因,但找不到太多。为什么会发生这种情况,我该如何解决?
I am trying to set colors as required for my work, however, the legend colors are not matched.
原因是您设置的是数据 "points" 的格式,而不是整个系列。所以 Excel 仍然显示图例中的默认系列格式。
修复很简单,您只需为整个系列指定 "fill",而不仅仅是系列中的点:
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()
输出:
我在 python
与 xlsxwriter
一起工作。我创建了一些图表,但是颜色不匹配。我正在尝试根据工作需要设置颜色,但是 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)
我试图找到原因,但找不到太多。为什么会发生这种情况,我该如何解决?
I am trying to set colors as required for my work, however, the legend colors are not matched.
原因是您设置的是数据 "points" 的格式,而不是整个系列。所以 Excel 仍然显示图例中的默认系列格式。
修复很简单,您只需为整个系列指定 "fill",而不仅仅是系列中的点:
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()
输出: