【问题标题】:Changing series fill color in python-pptx在 python-pptx 中更改系列填充颜色
【发布时间】:2018-07-06 13:47:37
【问题描述】:

我刚开始使用 python-pptx,但是在 win32com、Visual Basic、Interop 等之间使用 Powerpoint 有一些丰富的经验,并且在创建具有单个系列的图表时我看到了一些有趣的事情。

问题:默认情况下,具有单个系列的图表似乎是每点/类别的不同颜色填充。这与我所期望的相反:一个系列中的所有点都应该具有相同的颜色。 (例如,对于 win32com,这些图表将在所有点上具有单一、一致的颜色,但是 win32com 有一些非常复杂的东西,需要基本上重建 ChartData 并覆盖默认值,再加上整个 Application 实例在后面做它的事情我们在 OpenXML 或 pptx 等中没有的场景,所以这可能是造成这种明显差异的一个因素)

问题:这是具有单个系列的图表的正常/预期行为吗?还是我忽略了一些明显的东西?

我看到了similar question,我能够在那里调整您的 cmets 以一致地格式化系列(如下),但主要是我想知道这是否有必要,或者我做错了什么:

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

【问题讨论】:

    标签: python python-pptx


    【解决方案1】:

    这是预期的行为。更改它的简单方法是将_BasePlot.vary_by_categories 属性设置为False

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

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多