python pptx不工作时的xy散点图

python pptx不工作时的xy散点图,python,python-pptx,Python,Python Pptx,我正在尝试用x和y系列数据制作一个简单的python pptx xy散点图,但到目前为止还没有成功 from pptx import Presentation from pptx.util import Inches,Pt from pptx.enum.chart import XL_CHART_TYPE from pptx.chart.data import XySeriesData prs = Presentation() title_slide_layout = prs.slide_l

我正在尝试用x和y系列数据制作一个简单的python pptx xy散点图,但到目前为止还没有成功

from pptx import Presentation
from pptx.util import Inches,Pt

from pptx.enum.chart import XL_CHART_TYPE
from pptx.chart.data import XySeriesData

prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
blank_slide_layout = prs.slide_layouts[6]

slide = prs.slides.add_slide(title_slide_layout)
slide2 = prs.slides.add_slide(blank_slide_layout)

title = slide.shapes.title
subtitle = slide.placeholders[1]

title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"
chart_data = XySeriesData
chart_data.x_values=[0,1,2,3,4,5]
chart_data.y_values=[10,22,33,38,40,43]
x, y, cx, cy = Inches(1), Inches(2), Inches(8), Inches(3)
chart = slide2.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER, x, y, cx, cy, chart_data).chart

prs.save('test1.pptx')
我得到的错误是

文件“C:\Users\adnan\Google Drive\Learning\Python\5g\u tti\u parser\untitled0.py”,第31行,在 图表=幻灯片2.形状。添加图表(XL\U图表类型.XY\U散点、x、y、cx、cy、图表数据)。图表

文件“C:\ProgramData\Anaconda3\lib\site packages\pptx\shapes\shapetree.py”,第250行,在添加图表中 rId=self.part.add\u图表\u部分(图表类型、图表数据)

文件“C:\ProgramData\Anaconda3\lib\site packages\pptx\parts\slide.py”,第174行,在“添加图表”部分 chart\u part=ChartPart.new(图表类型、图表数据、self.package)

文件“C:\ProgramData\Anaconda3\lib\site packages\pptx\parts\chart.py”,第30行,新格式 chart\u blob=chart\u data.xml\u字节(chart\u类型)


AttributeError:type对象“XySeriesData”没有属性“xml\u bytes”

我今天也在处理这个问题-看起来您跳过了一些步骤

确保您有正确的导入,包括:

from pptx.chart.data import XySeriesData, XyChartData
更改此行:

chart_data = XySeriesData
要实例化类XyChartData,请执行以下操作:

chart_data = XyChartData()
然后您需要添加一个系列(创建XySeries对象),给它一个名称和一个数字格式(我使用的是None)

然后

我不确定这是否能解决你的问题,但我希望它能帮助你。今天我可以用这种方式替换散点图中的数据

编辑:

在图表数据对象上设置x_值和y_值不一致且不可靠。在下面的示例中,将数字列表设置为变量名。为了清晰起见,我使用了x_值列表和y_值列表

新方法:

将“添加_系列”对象保存到变量,并分别添加x&y数据点

chart_data = XyChartData()    
cd = chart_data.add_series('name_of_series', number_format= None)
    for x, y in list(zip(x_values_list, y_values_list)):
         cd.add_data_point(x, y, number_format=None)

此时,图表_数据包含系列对象,可以插入图表形状,而cd表示XySeries对象。我认为x_值和y_值可能更像是访问器而不是写入器?我无法在XySeries级别成功设置这些值。在XyChartData级别,我在尝试将列表设置为这些属性时也遇到了很多问题。这是更好的运作

我今天也在做这件事-看起来你跳过了一些步骤

确保您有正确的导入,包括:

from pptx.chart.data import XySeriesData, XyChartData
更改此行:

chart_data = XySeriesData
要实例化类XyChartData,请执行以下操作:

chart_data = XyChartData()
然后您需要添加一个系列(创建XySeries对象),给它一个名称和一个数字格式(我使用的是None)

然后

我不确定这是否能解决你的问题,但我希望它能帮助你。今天我可以用这种方式替换散点图中的数据

编辑:

在图表数据对象上设置x_值和y_值不一致且不可靠。在下面的示例中,将数字列表设置为变量名。为了清晰起见,我使用了x_值列表和y_值列表

新方法:

将“添加_系列”对象保存到变量,并分别添加x&y数据点

chart_data = XyChartData()    
cd = chart_data.add_series('name_of_series', number_format= None)
    for x, y in list(zip(x_values_list, y_values_list)):
         cd.add_data_point(x, y, number_format=None)

此时,图表_数据包含系列对象,可以插入图表形状,而cd表示XySeries对象。我认为x_值和y_值可能更像是访问器而不是写入器?我无法在XySeries级别成功设置这些值。在XyChartData级别,我在尝试将列表设置为这些属性时也遇到了很多问题。这是更好的运作

是的,你是对的,你的新方法更可靠。现在我坚持在轴标题、轴值和图表标题上设置字体大小:D是的,你是对的,你的新方法更可靠。现在我坚持在轴标题、轴值和图表标题上设置字体大小:D