XlsxWriter - Несоответствие цвета столбца диаграммы и легенды

1

Я работаю с xlsxwriter в python. Я создал несколько диаграмм, однако несоответствие цвета. Я пытаюсь установить цвета, необходимые для моей работы, однако legend colors не совпадают. Мне нужно сделать вторую колонку green но в разделе легенд она становится красной. Вот диаграмма, которую я getting- Изображение 174551

Вот код, который я использую:

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)

Я пытался найти причину, но не мог найти много. Почему это происходит и как я могу это исправить?

Теги:
colors
legend
charts
xlsxwriter

1 ответ

2
Лучший ответ

Я пытаюсь установить цвета, необходимые для моей работы, однако цвета легенд не совпадают.

Причина этого заключается в том, что вы устанавливаете форматирование для "точек" данных, а не для всей серии. Таким образом, 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()

Выход:

Изображение 174551

  • 0
    Спасибо! Это полностью сработало! Мне пришлось использовать очки для некоторых других графиков. Я не осознавал, что делаю это для всех них.
  • 1
    Для диаграмм в стиле Pie и Doughtnut в Excel вам нужно использовать точки для определения отдельных цветов. Однако все другие типы диаграмм в Excel используют ряды. Вы по-прежнему можете использовать точки для установки отдельных элементов не круговых диаграмм, но это более редкое использование.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню