gpt4 book ai didi

python - 使用 python-pptx 自定义图例位置

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:55 24 4
gpt4 key购买 nike

我想将图例设置在自定义的自定义位置。

我的最终目标是获取现有图表的设置,并对新图表使用相同的设置。

我在文档中读到可以这样设置图例:

( http://python-pptx.readthedocs.io/en/latest/api/enum/XlLegendPosition.html#xllegendposition )

from pptx.enum.chart import XL_LEGEND_POSITION

chart.has_legend = True
chart.legend.position = XL_LEGEND_POSITION.CUSTOM

但我收到一个 ValueError:

ValueError: CUSTOM (-4161) not a member of XL_LEGEND_POSITION enumeration

我错过了什么或者如何将图例设置在自定义位置?

最佳答案

我找不到对此问题的完整答案,因此我认为值得发布我使用的解决方法:

from pptx.oxml.xmlchemy import OxmlElement

def SubElement(parent, tagname, **kwargs):
element = OxmlElement(tagname)
element.attrib.update(kwargs)
parent.append(element)
return element

def manuallySetLegendPosition(
chart,
x,
y,
w,
h
):
## Inside layout, add manualLayout
L = chart.legend._element.get_or_add_layout()
mL = L.get_or_add_manualLayout()
## Add xMode and yMode and set vals to edge
xM = SubElement(mL, 'c:xMode', val="edge")
xY = SubElement(mL, 'c:yMode', val="edge")
## Add x, value is between -1 and 1 as a proportion of the chart width
## point of reference on the legend is its centre, not top left
xE = SubElement(mL, 'c:x', val=str(x))
## Add y, same concept as above
yE = SubElement(mL, 'c:y', val=str(y))
## Add w, legend height as a proportion of chart height
wE = SubElement(mL, 'c:w', val=str(w))
## Add h, same concept as above
hE = SubElement(mL, 'c:h', val=str(h))

关于python - 使用 python-pptx 自定义图例位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48325832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com