python-pptx如何使图例显示系列名称而不是类别名称

时间:2019-08-13 11:21:51

标签: python python-3.x python-pptx

下面的代码产生以下图表: enter image description here

from pptx import Presentation
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Cm


# create presentation with 1 slide ------
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])
x = ['one','two']

specs = {
    'height': Cm(7.82),
    'width': Cm(14.8),
    'left': Cm(2.53),
    'top': Cm(5.72)}

data = ChartData()
data.categories = x
data.add_series('Series1', [5,6])
data.add_series('Series2', [4,5])

frame = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, specs['left'],
                               specs['top'], specs['width'],
                               specs['height'], data)
chart = frame.chart


chart.has_legend = True

prs.save('chart-01.pptx')

但是,如果我注释掉data.add_series('Series2', [4,5])这一行并且仅创建一个系列,那么我得到以下图像: enter image description here

请注意,图例已从参考系列变为参考类别。

我想让图例继续显示系列名称而不是类别名称。因此,我想在第二个图表中将一个和两个都设置为相同的颜色,并在图例中显示Series1。我尝试了各种不同的系列和类别配置,但均未成功。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

这是PowerPoint的自动行为。我认为,对于单变量图表来说,通常不需要图例,因为每种颜色仅出现一次且与类别名称相邻(因此,“自动生成”也是如此)。在这种情况下,通常可以隐藏图例,而仅依靠类别轴刻度标签。

另一个选择是关闭“每种类别的颜色”,这将使系列名称出现在图例中。这由A属性控制:

plot.vary_by_categories