PowerPoint 中的柱形图是一种利用柱形或条形来展示不同类别间数据对比的图形化数据表示方式。它常用于展现财务数据、统计资料以及其他定量信息。每个柱形代表一个类别,其高度与该类别的数值相对应。柱状图在 PowerPoint 中易于创建与自定义,使得用户能够快速将数据可视化。
在本文中,您将学习如何使用 Spire.Presentation for Python 在 Python 中给 PowerPoint 文档创建柱形图。
安装 Spire.Presentation for Python
本教程需要 Spire.Presentation for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Presentation for Python
Python 在 PowerPoint 中创建簇状柱形图
簇状柱形图是一种柱形图变体,其中柱形(或条形)被分组为若干簇或段,每个簇代表一个类别,而该簇内各柱形的高度则反映该类别对应数据点的数值。
使用 Spire.Presentation for Python 库在 PowerPoint 中添加簇状柱形图,可调用 ISlide.Shapes.AppendChartInit(type: ChartType, rectangle RectangleF, init bool) 方法,并将图表类型指定为 ColumnClustered。此方法会返回一个 IChart 类的对象,利用该对象可以设置图表数据、标题、系列标签、类别标签、系列值及其他属性。
以下是使用 Python 在 PowerPoint 中创建簇状柱形图的步骤:
- 创建 Presentation 类的对象。
- 设置幻灯片尺寸类型。
- 使用 Prenstion.Slides[] 属性获取第一张幻灯片。
- 调用 Presentation.Slides[].Shapes.AppendChartInit(type:ChartType,rectangle:RectangleF,init:bool) 方法在演示文稿的指定幻灯片中添加簇状柱形图。
- 使用 IChart.ChartData 属性将文字和数字作为图表数据添加到图表工作表中。
- 通过 IChart 类的属性设置系列标签、类别标签、系列值及其他属性。
- 使用 Presentation.SaveToFile() 方法保存文档。
- Python
from spire.presentation.common import *
from spire.presentation import *
# 创建一个Presentation对象
presentation = Presentation()
# 设置幻灯片尺寸类型
presentation.SlideSize.Type = SlideSizeType.Screen16x9
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加簇状柱形图
rect = RectangleF.FromLTRB(40, 80, 700, 450)
chart = slide.Shapes.AppendChartInit(ChartType.ColumnClustered, rect, False)
# 设置图表标题
chart.ChartTitle.TextProperties.Text = "销售情况"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25
chart.HasTitle = True
# 向图表插入文本作为系列标签
chart.ChartData[0,0].Text = "产品名"
chart.ChartData[0,1].Text = "Product A"
chart.ChartData[0,2].Text = "Product B"
# 向图表插入文本作为类别标签
chart.ChartData[1,0].Text = "第一季度"
chart.ChartData[2,0].Text = "第二季度"
chart.ChartData[3,0].Text = "第三季度"
chart.ChartData[4,0].Text = "第四季度"
# 向图表插入数字作为系列值
Series1 = [35000, 46000, 28000, 52000]
Series2 = [41000, 32000, 36000, 40000]
i = 0
while i < len(Series1):
chart.ChartData[i + 1,1].NumberValue = Series1[i]
chart.ChartData[i + 1,2].NumberValue = Series2[i]
i += 1
# 设置系列标签
chart.Series.SeriesLabel = chart.ChartData["B1","C1"]
# 设置类别标签
chart.Categories.CategoryLabels = chart.ChartData["A2","A5"]
# 设置系列的值
chart.Series[0].Values = chart.ChartData["B2","B5"]
chart.Series[1].Values = chart.ChartData["C2","C5"]
# 设置柱间宽度
chart.GapWidth = 350
# 设置系列重叠程度
chart.OverLap = -50
# 设置每个系列的填充颜色
chart.Series[0].Fill.FillType = FillFormatType.Solid
chart.Series[0].Fill.SolidColor.Color = Color.get_CadetBlue()
chart.Series[1].Fill.FillType = FillFormatType.Solid
chart.Series[1].Fill.SolidColor.Color = Color.get_LightBlue()
# 添加数据标签
for i in range(len(Series1)):
chart.Series[0].DataLabels.Add()
chart.Series[1].DataLabels.Add()
# 保存文档
presentation.SaveToFile("簇状柱形图.pptx", FileFormat.Pptx2019)
# 关闭对象
presentation.Dispose()
Python 在 PowerPoint 中创建堆积柱形图
堆积柱形图是标准柱形图的一种变体,其中每一根柱子代表一个类别,柱子的高度对应于该类别的总值。
使用 Spire.Presentation for Python 库在 PowerPoint 中添加堆积柱形图时,您需要调用 ISlide.Shapes.AppendChartInit(type: ChartType, rectangle RectangleF, init bool) 方法,并将图表类型指定为 ColumnStacked。接下来,您可以使用 IChart 类的属性来设置图表数据、标题、系列标签、类别标签、系列值及其他属性。
以下是使用 Python 在 PowerPoint 中创建堆积柱状图的步骤:
- 创建 Presentation 类的对象。
- 设置幻灯片尺寸类型。
- 使用 Prenstion.Slides[] 属性获取第一张幻灯片。
- 调用 Presentation.Slides[].Shapes.AppendChartInit(type:ChartType,rectangle:RectangleF,init:bool) 方法在演示文稿的指定幻灯片中添加堆积柱形图。
- 使用 IChart.ChartData 属性将文字和数字作为图表数据添加到图表工作表中。
- 通过 IChart 类的属性设置系列标签、类别标签、系列值及其他属性。
- 使用 Presentation.SaveToFile() 方法保存文档。
- Python
from spire.presentation.common import *
from spire.presentation import *
# 创建一个Presentation对象
presentation = Presentation()
# 设置幻灯片尺寸类型
presentation.SlideSize.Type = SlideSizeType.Screen16x9
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加堆积柱形图
rect = RectangleF.FromLTRB(40, 80, 700, 450)
chart = slide.Shapes.AppendChartInit(ChartType.ColumnStacked, rect, False)
# 设置图表标题
chart.ChartTitle.TextProperties.Text = "销售情况"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25
chart.HasTitle = True
# 向图表插入文本作为系列标签
chart.ChartData[0,0].Text = "产品名"
chart.ChartData[0,1].Text = "Product A"
chart.ChartData[0,2].Text = "Product B"
# 向图表插入文本作为类别标签
chart.ChartData[1,0].Text = "第一季度"
chart.ChartData[2,0].Text = "第二季度"
chart.ChartData[3,0].Text = "第三季度"
chart.ChartData[4,0].Text = "第四季度"
# 向图表插入数字作为系列值
Series1 = [35000, 46000, 28000, 52000]
Series2 = [41000, 32000, 36000, 40000]
i = 0
while i < len(Series1):
chart.ChartData[i + 1,1].NumberValue = Series1[i]
chart.ChartData[i + 1,2].NumberValue = Series2[i]
i += 1
# 设置系列标签
chart.Series.SeriesLabel = chart.ChartData["B1","C1"]
# 设置类别标签
chart.Categories.CategoryLabels = chart.ChartData["A2","A5"]
# 设置系列的值
chart.Series[0].Values = chart.ChartData["B2","B5"]
chart.Series[1].Values = chart.ChartData["C2","C5"]
# 设置柱间宽度
chart.GapWidth = 350
# 设置每个系列的填充颜色
chart.Series[0].Fill.FillType = FillFormatType.Solid
chart.Series[0].Fill.SolidColor.Color = Color.get_CadetBlue()
chart.Series[1].Fill.FillType = FillFormatType.Solid
chart.Series[1].Fill.SolidColor.Color = Color.get_LightBlue()
# 添加数据标签
for i in range(len(Series1)):
chart.Series[0].DataLabels.Add()
chart.Series[1].DataLabels.Add()
# 保存文档
presentation.SaveToFile("堆积柱形图.pptx", FileFormat.Pptx2019)
# 关闭对象
presentation.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。