python-pptx:更改饼图的边框宽度
python-pptx: change border width for pie chart
是否可以 set/edit python-pptx 中饼图的边框宽度?
我想这样的事情会成功吗?
for idx, point in enumerate(chart.series[0].points):
point.format.width = Pt(7.25)
python-pptx
API 尚不支持此功能,但您可以通过采用如下解决方法来实现此功能:
from pptx.dml.color import RGBColor
from pptx.dml.line import LineFormat
from pptx.oxml import parse_xml
from pptx.oxml.ns import nsdecls
from pptx.util import Pt
plotArea = chart._chartSpace.plotArea
# ---get-or-add spPr---
spPrs = plotArea.xpath("c:spPr")
if len(spPrs) > 0:
spPr = spPrs[0]
else:
# ---add spPr---
spPr_xml = (
"<c:spPr %s %s>\n"
" <a:noFill/>\n"
" <a:ln>\n"
" <a:solidFill>\n"
" <a:srgbClr val=\"DEDEDE\"/>\n"
" </a:solidFill>\n"
" </a:ln>\n"
" <a:effectLst/>\n"
"</c:spPr>\n" % (nsdecls("c"), nsdecls("a"))
)
spPr = parse_xml(spPr_xml)
plotArea.insert_element_before(spPr, "c:extLst")
line = LineFormat(spPr)
line.color.rgb = RGBColor.from_text("DEDEDE")
line.width = Pt(2)
以这种方式形成的 LineFormat
对象具有此处描述的所有方法和属性:
https://python-pptx.readthedocs.io/en/latest/api/dml.html#lineformat-objects
将大部分代码提取到方法 chart_border(chart)
中可能是有意义的 returns 图表的 LineFormat
对象,之后您可以按照通常的方式对其进行操作.
是否可以 set/edit python-pptx 中饼图的边框宽度?
我想这样的事情会成功吗?
for idx, point in enumerate(chart.series[0].points):
point.format.width = Pt(7.25)
python-pptx
API 尚不支持此功能,但您可以通过采用如下解决方法来实现此功能:
from pptx.dml.color import RGBColor
from pptx.dml.line import LineFormat
from pptx.oxml import parse_xml
from pptx.oxml.ns import nsdecls
from pptx.util import Pt
plotArea = chart._chartSpace.plotArea
# ---get-or-add spPr---
spPrs = plotArea.xpath("c:spPr")
if len(spPrs) > 0:
spPr = spPrs[0]
else:
# ---add spPr---
spPr_xml = (
"<c:spPr %s %s>\n"
" <a:noFill/>\n"
" <a:ln>\n"
" <a:solidFill>\n"
" <a:srgbClr val=\"DEDEDE\"/>\n"
" </a:solidFill>\n"
" </a:ln>\n"
" <a:effectLst/>\n"
"</c:spPr>\n" % (nsdecls("c"), nsdecls("a"))
)
spPr = parse_xml(spPr_xml)
plotArea.insert_element_before(spPr, "c:extLst")
line = LineFormat(spPr)
line.color.rgb = RGBColor.from_text("DEDEDE")
line.width = Pt(2)
以这种方式形成的 LineFormat
对象具有此处描述的所有方法和属性:
https://python-pptx.readthedocs.io/en/latest/api/dml.html#lineformat-objects
将大部分代码提取到方法 chart_border(chart)
中可能是有意义的 returns 图表的 LineFormat
对象,之后您可以按照通常的方式对其进行操作.