Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将透明度和颜色应用于雷达图Python pptx_Python_Python Pptx_Radar Chart - Fatal编程技术网

将透明度和颜色应用于雷达图Python pptx

将透明度和颜色应用于雷达图Python pptx,python,python-pptx,radar-chart,Python,Python Pptx,Radar Chart,据我所知:python pptx中的形状具有应用透明度的功能。 我想做的是:我想让我的雷达图既有颜色又有透明度 如果我将填充应用于雷达图,则不再支持透明度功能,另一方面,应用“format.fill.background()”删除实心填充。但我需要颜色和透明度。 错误i get=AttributeError:“GraphicFrame”对象没有属性“fill” 代码如下所示 #################### Transparency portion #################

据我所知:python pptx中的形状具有应用透明度的功能。 我想做的是:我想让我的雷达图既有颜色又有透明度

如果我将填充应用于雷达图,则不再支持透明度功能,另一方面,应用“format.fill.background()”删除实心填充。但我需要颜色和透明度。 错误i get=AttributeError:“GraphicFrame”对象没有属性“fill”

代码如下所示



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

def _set_shape_transparency(shape, alpha):
    """ Set the transparency (alpha) of a shape"""
    ts = shape.fill._xPr.solidFill
    sF = ts.get_or_change_to_srgbClr()
    sE = SubElement(sF, 'a:alpha', val=str(alpha))

###################################
chart_data = ChartData()
chart_data.categories = '1','2','3','4','5'
Matching_matrix=(4, 5, 5, 4, 4)
chart_data.add_series('', Matching_matrix) 
 
x, y, cx, cy = Inches(6.6), Inches(4.8), Inches(2.3), Inches(2.3)
graphic_frame = shapes.add_chart(
    XL_CHART_TYPE.RADAR_FILLED, x, y, cx, cy, chart_data
)
chart=graphic_frame.chart
chart_format=chart.plots[0].series[0].format
chart_fill=chart_format.fill
chart_fill.solid()

blueBoxFillColour = chart_fill.fore_color
blueBoxFillColour.rgb = RGBColor(0,176,240)

chart_font=chart.font 
chart_font.size=Pt(10)

_set_shape_transparency(graphic_frame,1000)
'''


为什么说“python pptx中的形状具有应用透明度的功能”?您使用什么调用来设置形状的透明度?我使用stackoverflow中的代码。形状支持实体填充功能,我们可以使实体填充透明。python pptx中还没有API对透明度的支持。您提供的链接展示了一种使用
lxml
调用直接操作底层XML来设置透明度的方法。你需要对雷达图做类似的操作。注意:图表有许多填充;它不是一个简单的形状(实际上根本不是形状)。如果您想扩展
python-pptx
的功能,那么您可能需要熟悉该类以及
lxml
的一些其他方面,因为这就是
python-pptx
用来操作pptx文档底层XML的内容。