代码之家  ›  专栏  ›  技术社区  ›  Boosted_d16

如何在python pptx中读取数据标签的文本

  •  0
  • Boosted_d16  · 技术社区  · 4 年前

    我想读入给定数据标签的文本。

    我尝试过:

    print(plot.series[0].points[0].data_label.text_frame.text)
    

    上面的代码片段试图打印第一个系列的第一个点,即“16”,但它什么也不打印。

    enter image description here

    如何获取datalabel中的内容?

    我想读入文本,找到一些新的内容,并将其重新插入数据标签。像这样的

    dltext = plot.series[0].points[0].data_label.text_frame.text
    plot.series[0].points[0].data_label.text_frame.text = dltext + "Foo"
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   scanny    4 年前

    这个 data_label.text_frame 仅当您明确地将其放在那里时才包含文本。否则,渲染的是该数据点的值和设置的函数 .show_value show_percent 等。此处记录: https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.datalabel.DataLabels

    如果你想匹配显示给用户的内容,你需要复制这个逻辑。

    如果你想在一般情况下做到这一点,需要做一些工作,因为你需要计算 有效的 房产的价值,比如 DataLabel.show_value ,这将需要对该设置的样式层次结构进行反向工程。

    但95%的解决方案只是假设所显示的是价值,然后继续。这是默认的数据标签,至少对于条形图(饼图可能默认为百分比)。