图表用于数据的图形表示,这使分析更容易。因此,MS PowerPoint 支持一系列图表,以不同方式可视化数据。其中,最常用的图表包括饼图、折线图、条形图、直方图、股票图表等。在本文中,您将学习如何在 PowerPoint PPT 或 Python 中的 PPTX 中创建这些图表。
- 在 PowerPoint 中创建图表的 Python 库
- 用 Python 在 PowerPoint 中创建柱形图
- 用Python在PPT中创建散点图
- 用Python在PPT中添加饼图
- 用Python在PPT中添加直方图
- 用 Python 在 PowerPoint 中创建股票图表
- 更多关于图表
在 PowerPoint PPT 中创建图表的 Python 库
要在 PowerPoint PPT/PPTX 中创建图表,我们将使用 Aspose.Slides for Python via .NET。它是一个功能丰富的库,提供了一个完整的包来创建和操作 PowerPoint 演示文稿。您可以使用以下 pip 命令从 PyPI 安装它。
> pip install aspose.slides
Aspose.Slides 支持各种可以动态添加到演示文稿中的图表。在以下部分中,我们将演示如何创建一些流行的图表类型。
用 Python 在 PowerPoint PPT 中创建柱形图
在本节中,您将学习如何使用 Python 在 PowerPoint 演示文稿中创建柱形图。以下是执行此操作的步骤。
- 首先,创建一个 Presentation 类的实例。
- 从对象中的 Presentations.slides 获取幻灯片的引用。
- 使用 Slide.shapes.addchart() 方法添加具有默认数据的聚集柱形图。
- 设置图表标题和其他属性,例如文本格式。
- 使用 Chart.chartdata.chartdataworkbook() 方法将图表数据工作簿访问到对象中。
- 分别使用 Chart.chartdata.series.clear() 和 Chart.chartdata.categories.clear() 方法从图表数据中清除所有默认系列和类别。
- 添加新的系列和类别。
- 将每个图表系列访问到一个对象中并向其添加数据点。
- 为图表系列添加填充颜色并设置标签。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 Python 中创建 PowerPoint PPT 中的柱形图。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿(或加载现有演示文稿)
with slides.Presentation() as pres:
# 访问第一张幻灯片
sld = pres.slides[0]
# 添加带有默认数据的图表
chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)
# 设置图表标题
chart.chart_title.add_text_frame_for_overriding("Sample Title")
chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
chart.chart_title.height = 20
chart.has_title = True
# 设置第一个系列以显示值
chart.chart_data.series[0].labels.default_data_label_format.show_value = True
# 设置图表数据表的索引
defaultWorksheetIndex = 0
# 获取图表数据工作表
fact = chart.chart_data.chart_data_workbook
# 删除默认生成的系列和类别
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
s = len(chart.chart_data.series)
s = len(chart.chart_data.categories)
# 添加新系列
chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)
# 添加新类别
chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))
# 获取第一个图表系列
series = chart.chart_data.series[0]
# 填充系列数据
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))
# 为系列设置填充颜色
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = drawing.Color.blue
# 采取第二个图表系列
series = chart.chart_data.series[1]
# 填充系列数据
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))
# 为系列设置填充颜色
series.format.fill.fill_type = slides.FillType.SOLID
series.format.fill.solid_fill_color.color = drawing.Color.orange
# 第一个标签将显示类别名称
lbl = series.data_points[0].label
lbl.data_label_format.show_category_name = True
lbl = series.data_points[1].label
lbl.data_label_format.show_series_name = True
# 显示第三个标签的值
lbl = series.data_points[2].label
lbl.data_label_format.show_value = True
lbl.data_label_format.show_series_name = True
lbl.data_label_format.separator = "/"
# 保存演示文稿
pres.save("column-chart.pptx", slides.export.SaveFormat.PPTX)
以下是生成的柱形图的屏幕截图。
在 Python 的 PowerPoint PPT 中创建散点图
以下是用 Python 在 PowerPoint PPT 中创建散点图的步骤。
- 首先,创建一个 Presentation 类的实例。
- 从对象中的 Presentations.slides 获取幻灯片的引用。
- 使用 Slide.shapes.addchart() 方法添加带有默认数据的散点图。
- 使用 Chart.chartdata.chartdataworkbook() 方法将图表数据工作簿访问到对象中。
- 向图表数据添加新系列。
- 将每个系列访问到一个对象并将数据点添加到该系列。
- 设置系列的标记。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 Python 中的 PowerPoint PPTX 中创建散点图。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿(或加载现有演示文稿)
with slides.Presentation() as pres:
# 访问第一张幻灯片
slide = pres.slides[0]
# 创建默认图表
chart = slide.shapes.add_chart(slides.charts.ChartType.SCATTER_WITH_SMOOTH_LINES, 0, 0, 400, 400)
# 获取默认图表数据工作表索引
defaultWorksheetIndex = 0
# 获取图表数据工作表
fact = chart.chart_data.chart_data_workbook
# 删除演示系列
chart.chart_data.series.clear()
# 添加新系列
chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.type)
chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.type)
# 获取第一个图表系列
series = chart.chart_data.series[0]
# 添加新点 (1:3)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 1), fact.get_cell(defaultWorksheetIndex, 2, 2, 3))
# 添加新点 (2:10)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 2), fact.get_cell(defaultWorksheetIndex, 3, 2, 10))
# 编辑系列类型
series.type = slides.charts.ChartType.SCATTER_WITH_STRAIGHT_LINES_AND_MARKERS
# 更改图表系列标记
series.marker.size = 10
series.marker.symbol = slides.charts.MarkerStyleType.STAR
# 采取第二个图表系列
series = chart.chart_data.series[1]
# 添加新点 (5:2)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 2, 3, 5), fact.get_cell(defaultWorksheetIndex, 2, 4, 2))
# 添加新点 (3:1)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 3, 3, 3), fact.get_cell(defaultWorksheetIndex, 3, 4, 1))
# 添加新点 (2:2)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 4, 3, 2), fact.get_cell(defaultWorksheetIndex, 4, 4, 2))
# 添加新点 (5:1)
series.data_points.add_data_point_for_scatter_series(fact.get_cell(defaultWorksheetIndex, 5, 3, 5), fact.get_cell(defaultWorksheetIndex, 5, 4, 1))
# 更改图表系列标记
series.marker.size = 10
series.marker.symbol = slides.charts.MarkerStyleType.CIRCLE
# 保存演示文稿
pres.save("scatter-chart.pptx", slides.export.SaveFormat.PPTX)
以下屏幕截图显示了生成的散点图。
用 Python 在 PowerPoint PPT 中创建饼图
以下是用 Python 在 PowerPoint PPT 中创建饼图的步骤。
- 首先,创建一个 Presentation 类的实例。
- 从对象中的 Presentations.slides 获取幻灯片的引用。
- 使用 Slide.shapes.addchart() 方法添加带有默认数据的饼图。
- 设置图表标题和其他属性,例如文本格式。
- 设置值的可见性。
- 分别使用 Chart.chartdata.series.clear() 和 Chart.chartdata.categories.clear() 方法从图表数据中清除所有默认系列和类别。
- 使用 Chart.chartdata.chartdataworkbook() 方法将图表数据工作簿访问到对象中。
- 向图表数据添加新类别。
- 向图表数据添加新系列。
- 将每个系列访问到一个对象并将数据点添加到该系列。
- 访问每个数据点并设置其格式。
- 将格式应用于数据点中的数据标签。
- 设置引导线和旋转角度。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 Python 中的 PowerPoint PPTX 中创建饼图。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿(或加载现有演示文稿)
with slides.Presentation() as presentation:
# 访问第一张幻灯片
slide = presentation.slides[0]
# 添加带有默认数据的图表
chart = slide.shapes.add_chart(slides.charts.ChartType.PIE, 100, 100, 400, 400)
# 设置图表标题
chart.chart_title.add_text_frame_for_overriding("Sample Title")
chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
chart.chart_title.height = 20
chart.has_title = True
# 设置第一个系列以显示值
chart.chart_data.series[0].labels.default_data_label_format.show_value = True
# 设置图表数据表的索引
defaultWorksheetIndex = 0
# 获取图表数据工作表
fact = chart.chart_data.chart_data_workbook
# 删除默认生成的系列和类别
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
# 添加新类别
chart.chart_data.categories.add(fact.get_cell(0, 1, 0, "First Qtr"))
chart.chart_data.categories.add(fact.get_cell(0, 2, 0, "2nd Qtr"))
chart.chart_data.categories.add(fact.get_cell(0, 3, 0, "3rd Qtr"))
# 添加新系列
series = chart.chart_data.series.add(fact.get_cell(0, 0, 1, "Series 1"), chart.type)
# 填充系列数据
series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
series.data_points.add_data_point_for_pie_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))
# 添加新点并设置扇区颜色
chart.chart_data.series_groups[0].is_color_varied = True
point = series.data_points[0]
point.format.fill.fill_type = slides.FillType.SOLID
point.format.fill.solid_fill_color.color = drawing.Color.orange
# 设置扇区边界
point.format.line.fill_format.fill_type = slides.FillType.SOLID
point.format.line.fill_format.solid_fill_color.color = drawing.Color.gray
point.format.line.width = 3.0
# point.format.line.style = slides.LineStyle.THIN_THICK
# point.format.line.dash_style = slides.LineDashStyle.DASH_DOT
point1 = series.data_points[1]
point1.format.fill.fill_type = slides.FillType.SOLID
point1.format.fill.solid_fill_color.color = drawing.Color.blue_violet
# 设置扇区边界
point1.format.line.fill_format.fill_type = slides.FillType.SOLID
point1.format.line.fill_format.solid_fill_color.color = drawing.Color.blue
point1.format.line.width = 3.0
# point1.format.line.style = slides.LineStyle.SINGLE
# point1.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT
point2 = series.data_points[2]
point2.format.fill.fill_type = slides.FillType.SOLID
point2.format.fill.solid_fill_color.color = drawing.Color.yellow_green
# 设置扇区边界
point2.format.line.fill_format.fill_type = slides.FillType.SOLID
point2.format.line.fill_format.solid_fill_color.color = drawing.Color.red
point2.format.line.width = 2.0
# point2.format.line.style = slides.LineStyle.THIN_THIN
# point2.format.line.dash_style = slides.LineDashStyle.LARGE_DASH_DOT_DOT
# 为新系列的每个类别创建自定义标签
lbl1 = series.data_points[0].label
# lbl.show_category_name = 真
lbl1.data_label_format.show_value = True
lbl2 = series.data_points[1].label
lbl2.data_label_format.show_value = True
lbl2.data_label_format.show_legend_key = True
lbl2.data_label_format.show_percentage = True
lbl3 = series.data_points[2].label
lbl3.data_label_format.show_series_name = True
lbl3.data_label_format.show_percentage = True
# 显示图表的引导线
# series.labels.default_data_label_format.show_leader_lines = True
# 设置饼图扇区的旋转角度
chart.chart_data.series_groups[0].first_slice_angle = 180
# 保存演示文稿
presentation.save("pie-chart.pptx", slides.export.SaveFormat.PPTX)
以下是生成的饼图的截图。
在 Python 中的 PowerPoint PPTX 中添加直方图
以下是使用 Aspose.Slides for Python 在 PowerPoint PPT 中创建直方图的步骤。
- 首先,创建一个 Presentation 类的实例。
- 从对象中的 Presentations.slides 获取幻灯片的引用。
- 使用 Slide.shapes.addchart() 方法添加带有默认数据的直方图。
- 清除默认系列和类别。
- 使用 Chart.chartdata.chartdataworkbook() 方法将图表数据工作簿访问到对象中。
- 向图表数据添加新系列。
- 将每个系列访问到一个对象并将数据点添加到该系列。
- 设置图表轴的聚合类型。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例展示了如何在 Python 中的 PPTX 中创建直方图。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿(或加载现有演示文稿)
with slides.Presentation() as pres:
# 添加图表
chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.HISTOGRAM, 50, 50, 500, 400)
# 清除默认类别和系列
chart.chart_data.categories.clear()
chart.chart_data.series.clear()
# 访问工作簿
wb = chart.chart_data.chart_data_workbook
wb.clear(0)
# 将数据点添加到系列
series = chart.chart_data.series.add(slides.charts.ChartType.HISTOGRAM)
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A1", 15))
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A2", -41))
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A3", 16))
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A4", 10))
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A5", -23))
series.data_points.add_data_point_for_histogram_series(wb.get_cell(0, "A6", 16))
# 设置聚合类型
chart.axes.horizontal_axis.aggregation_type = slides.charts.AxisAggregationType.AUTOMATIC
# 保存演示文稿
pres.save("histogram-chart.pptx", slides.export.SaveFormat.PPTX)
以下是创建的直方图的截图。
使用 Python 在 PowerPoint 中创建股票图表
股票图表也是 PowerPoint 演示文稿中常用的图表类型之一。以下是在 Python 中在 PPT 中创建股票图表的步骤。
- 首先,创建一个 Presentation 类的实例。
- 从对象中的 Presentations.slides 获取幻灯片的引用。
- 使用 Slide.shapes.addchart() 方法添加具有默认数据的 Open High Low Close 图表。
- 清除默认系列和类别。
- 使用 Chart.chartdata.chartdataworkbook() 方法将图表数据工作簿访问到对象中。
- 将新系列和类别添加到图表中。
- 访问每个图表系列并添加数据点。
- 指定 Hi Low Lines 格式。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存演示文稿。
以下代码示例演示如何在 Python 中将股票图表添加到 PowerPoint PPTX。
import aspose.slides as slides
import aspose.pydrawing as drawing
# 创建演示文稿(或加载现有演示文稿)
with slides.Presentation() as pres:
# 添加图表
chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.OPEN_HIGH_LOW_CLOSE, 50, 50, 600, 400, False)
# 清除默认系列和类别
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
# 访问工作簿
wb = chart.chart_data.chart_data_workbook
# 添加类别
chart.chart_data.categories.add(wb.get_cell(0, 1, 0, "A"))
chart.chart_data.categories.add(wb.get_cell(0, 2, 0, "B"))
chart.chart_data.categories.add(wb.get_cell(0, 3, 0, "C"))
# 添加系列
chart.chart_data.series.add(wb.get_cell(0, 0, 1, "Open"), chart.type)
chart.chart_data.series.add(wb.get_cell(0, 0, 2, "High"), chart.type)
chart.chart_data.series.add(wb.get_cell(0, 0, 3, "Low"), chart.type)
chart.chart_data.series.add(wb.get_cell(0, 0, 4, "Close"), chart.type)
# 添加数据点
series = chart.chart_data.series[0]
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 1, 72))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 1, 25))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 1, 38))
series = chart.chart_data.series[1]
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 2, 172))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 2, 57))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 2, 57))
series = chart.chart_data.series[2]
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 3, 12))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 3, 12))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 3, 13))
series = chart.chart_data.series[3]
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 1, 4, 25))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 2, 4, 38))
series.data_points.add_data_point_for_stock_series(wb.get_cell(0, 3, 4, 50))
chart.chart_data.series_groups[0].up_down_bars.has_up_down_bars = True
chart.chart_data.series_groups[0].hi_low_lines_format.line.fill_format.fill_type = slides.FillType.SOLID
# 设置系列填充格式
for ser in chart.chart_data.series:
ser.format.line.fill_format.fill_type = slides.FillType.NO_FILL
# 保存演示文稿
pres.save("stock-chart.pptx", slides.export.SaveFormat.PPTX)
以下是创建的股票图表的屏幕截图。
更多关于图表
您可以使用 Aspose.Slides for Python 将许多其他图表添加到 PowerPoint 演示文稿中。要了解有关支持的图表类型的更多信息,您可以访问 this documentation article。
获得免费许可证
您可以获得免费的临时许可证 试用该库而不受评估限制。
结论
在本文中,您学习了如何在 Python 的 PowerPoint PPT 或 PPTX 中创建图表。我们已经完成了如何添加柱形图、散点图、饼图、直方图和股票图的步骤和代码示例。您可以使用 documentation 探索更多关于 Aspose.Slides for Python 的信息。如果您有任何问题或疑问,请通过我们的 论坛 告诉我们。