python pptx不工作时的xy散点图
我正在尝试用x和y系列数据制作一个简单的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
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