Изменение цвета заливки серии в python-pptx - PullRequest
0 голосов
/ 06 июля 2018

Я только начал использовать python-pptx, но у меня есть довольно обширный опыт работы с Powerpoint между win32com, Visual Basic, Interop и т. Д., И я вижу что-то забавное при создании диаграммы из одной серии.

Проблема: диаграмма с одной серией, по умолчанию, кажется, изменяет цвет заливки на точку / категорию . Это противоречит тому, что я ожидал: все точки в серии должны иметь одинаковый цвет. (например, с win32com, эти диаграммы будут иметь единый, непротиворечивый цвет по всем точкам, но есть кое-что очень хитрое с win32com, которое требует в основном перестроения ChartData и перезаписи по умолчанию, плюс весь экземпляр Application делает свое дело за сцены, которых у нас нет в OpenXML или pptx и т. д., что может быть фактором в этом очевидном несоответствии)

enter image description here

Вопрос: Это нормальное / ожидаемое поведение для диаграммы с одной серией? Или я что-то упускаю из виду?

Я видел похожий вопрос , и я смог адаптировать ваши комментарии там для последовательного форматирования серии (ниже), но в основном мне интересно, если это необходимо, или я делаю что-то не так :

def FormatChart(chart):
    plot = chart.plots[0]
    plot.has_data_labels = True
    dl = plot.data_labels
    dl.position = XL_LABEL_POSITION.OUTSIDE_END

    value_axis = chart.value_axis
    value_axis.has_major_gridlines = False

    s = plot.series[0]
    s.format.fill.solid()
    s.format.fill.fore_color.theme_color = MSO_THEME_COLOR_INDEX.ACCENT_1

1 Ответ

0 голосов
/ 06 июля 2018

Это ожидаемое поведение. Простой способ изменить это, установив для свойства _BasePlot.vary_by_categories значение False:

plot = chart.plots[0]
plot.vary_by_categories = False
...