You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用python-pptx修改PPT图表plot area(绘图区)的填充颜色

解决python-pptx修改图表绘图区填充色不生效的问题

错误原因

原有代码的问题有两个:

  • 不需要手动创建新的<c:PlotArea>节点,chart对象本身已经包含现成的PlotArea节点,新增重复节点不会被识别
  • 填充属性不能直接挂载在PlotArea节点下,需要先创建形状属性节点<c:spPr>,再将填充配置放在该节点下

正确实现代码

前置导入

from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.oxml import OxmlElement
from pptx.util import Inches

核心修改逻辑

# 原有图表创建代码保持不变
graphic_frame = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data)
chart = graphic_frame.chart

# 1. 获取现有PlotArea节点
plot_area = chart._element.plot_area

# 可选:删除已有的形状属性节点,避免原有配置冲突
for exist_spPr in plot_area.findall("c:spPr"):
    plot_area.remove(exist_spPr)

# 2. 创建形状属性节点并插入到PlotArea
shape_properties = OxmlElement("c:spPr")
plot_area.insert(0, shape_properties)

# 3. 配置纯色填充规则
solid_fill = OxmlElement("a:solidFill")
shape_properties.append(solid_fill)

# 4. 设置RGB色值,这里对应你需要的(222, 235, 247)
rgb_node = OxmlElement("a:srgbClr")
rgb_node.set("val", f"{222:02x}{235:02x}{247:02x}")
solid_fill.append(rgb_node)

内容的提问来源于stack exchange,提问作者user3727554

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:30:03