折线图是一种通过直线连接数据点来展示信息的图表,特别适用于显示随时间变化的趋势。例如,在跟踪每月销售数据时,折线图可以帮助识别趋势、峰值和低谷。在本文中,您将学习如何使用 Spire.XLS for Python 通过 Python 在 Excel 中创建折线图。
安装 Spire.XLS for Python
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
通过 Python 在 Excel 中创建一个简单折线图
如果想要观察年度销售数据的走势、气温变化或者股价的走势,您可以使用简单折线图来呈现。Spire.XLS for Python 提供了 Worksheet.Charts.Add(ExcelChartType.Line) 方法,可帮助您在 Excel 工作表中快速添加简单折线图。
创建简单折线图的具体步骤如下:
- 创建一个 Workbook 类的实例。
- 通过 Workbook.Worksheets[] 属性获取指定的工作表。
- 在指定单元格中添加图表数据,并设置单元格样式。
- 使用 Worksheet.Charts.Add(ExcelChartType.Line) 方法向工作表添加简单折线图。
- 通过 Chart.DataRange 属性设置图表数据范围。
- 设置图表的位置、标题、坐标轴及其它属性。
- 使用 Workbook.SaveToFile() 方法保存文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个 Workbook 类的实例
workbook = Workbook()
# 获取第一个工作表并设置其名称
sheet = workbook.Worksheets[0]
sheet.Name = "折线图"
# 添加数据到指定单元格
sheet.Range["A1"].Value = "目录"
sheet.Range["A2"].Value = "水果"
sheet.Range["A3"].Value = "饮料"
sheet.Range["A4"].Value = "饼干"
sheet.Range["B1"].Value = "一月"
sheet.Range["B2"].NumberValue = 173
sheet.Range["B3"].NumberValue = 189
sheet.Range["B4"].NumberValue = 153
sheet.Range["C1"].Value = "二月"
sheet.Range["C2"].NumberValue = 151
sheet.Range["C3"].NumberValue = 165
sheet.Range["C4"].NumberValue = 201
sheet.Range["D1"].Value = "三月"
sheet.Range["D2"].NumberValue = 147
sheet.Range["D3"].NumberValue = 112
sheet.Range["D4"].NumberValue = 168
sheet.Range["E1"].Value = "四月"
sheet.Range["E2"].NumberValue = 140
sheet.Range["E3"].NumberValue = 109
sheet.Range["E4"].NumberValue = 124
sheet.Range["F1"].Value = "五月"
sheet.Range["F2"].NumberValue = 131
sheet.Range["F3"].NumberValue = 161
sheet.Range["F4"].NumberValue = 188
sheet.Range["G1"].Value = "六月"
sheet.Range["G2"].NumberValue = 174
sheet.Range["G3"].NumberValue = 153
sheet.Range["G4"].NumberValue = 136
# 设置单元格样式
sheet.Range["A1:G1"].RowHeight = 20
sheet.Range["A1:G1"].Style.Color = Color.get_Black()
sheet.Range["A1:G1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:G1"].Style.Font.IsBold = True
sheet.Range["A1:G1"].Style.Font.Size = 11
sheet.Range["A1:G1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:G1"].Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["B2:G4"].Style.NumberFormat = "\"¥\"#,##0"
# 在工作表中添加折线图
chart = sheet.Charts.Add(ExcelChartType.Line)
# 设置图表数据范围
chart.DataRange = sheet.Range["A1:G4"]
# 设置图表的位置
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 12
chart.BottomRow = 27
# 设置并格式化图表标题
chart.ChartTitle = "月消耗物资"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12
# 设置图表类别轴
chart.PrimaryCategoryAxis.Title = "月"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
# 设置图表值轴
chart.PrimaryValueAxis.Title = "数量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
chart.PrimaryValueAxis.MinValue = 100
chart.PrimaryValueAxis.TitleArea.IsBold = True
# 设置系列颜色和数据标签
for cs in chart.Series:
cs.Format.Options.IsVaryColor = True
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
# 设置图例位置
chart.Legend.Position = LegendPositionType.Top
# 保存文件
workbook.SaveToFile("/简单折线图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
使用 Python 在 Excel 中创建一个堆叠折线图
堆积折线图通过将每个类别的值堆叠在一起,强调整体的总量变化,使数据系列对整体趋势的贡献更加直观。比如不同部门的销售额对公司总收入的贡献,各渠道(线上、线下、代理)的销售额合计变化等。
以下是在 Python 中创建堆积折线图的步骤:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.Worksheets[] 属性获取指定的工作表。
- 在指定的单元格中添加图表数据并设置单元格样式。
- 使用 Worksheet.Charts.Add(ExcelChartType.LineStacked) 方法在工作表中添加堆积折线图。
- 通过 Chart.DataRange 属性设置图表数据范围。
- 设置图表的位置、标题、坐标轴及其他属性。
- 使用 Workbook.SaveToFile() 方法保存 Excel 文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个 Workbook 类的实例
workbook = Workbook()
# 获取第一个工作表并设置其名称
sheet = workbook.Worksheets[0]
sheet.Name = "折线图"
# 将数据填入指定单元格
sheet.Range["A1"].Value = "目录"
sheet.Range["A2"].Value = "水果"
sheet.Range["A3"].Value = "饮料"
sheet.Range["A4"].Value = "饼干"
sheet.Range["B1"].Value = "一月"
sheet.Range["B2"].NumberValue = 173
sheet.Range["B3"].NumberValue = 189
sheet.Range["B4"].NumberValue = 153
sheet.Range["C1"].Value = "二月"
sheet.Range["C2"].NumberValue = 151
sheet.Range["C3"].NumberValue = 165
sheet.Range["C4"].NumberValue = 201
sheet.Range["D1"].Value = "三月"
sheet.Range["D2"].NumberValue = 147
sheet.Range["D3"].NumberValue = 112
sheet.Range["D4"].NumberValue = 168
sheet.Range["E1"].Value = "四月"
sheet.Range["E2"].NumberValue = 140
sheet.Range["E3"].NumberValue = 109
sheet.Range["E4"].NumberValue = 124
sheet.Range["F1"].Value = "五月"
sheet.Range["F2"].NumberValue = 131
sheet.Range["F3"].NumberValue = 161
sheet.Range["F4"].NumberValue = 188
sheet.Range["G1"].Value = "六月"
sheet.Range["G2"].NumberValue = 174
sheet.Range["G3"].NumberValue = 153
sheet.Range["G4"].NumberValue = 136
# 设置单元格样式
sheet.Range["A1:G1"].RowHeight = 20
sheet.Range["A1:G1"].Style.Color = Color.get_Black()
sheet.Range["A1:G1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:G1"].Style.Font.IsBold = True
sheet.Range["A1:G1"].Style.Font.Size = 11
sheet.Range["A1:G1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:G1"].Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["B2:G4"].Style.NumberFormat = "\"¥\"#,##0"
# 将堆叠折线图添加到工作表中
chart = sheet.Charts.Add(ExcelChartType.LineStacked)
# 设置图表数据范围
chart.DataRange = sheet.Range["A1:G4"]
# 设置图表的位置
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 12
chart.BottomRow = 27
# 设置图表的标题
chart.ChartTitle = "月消耗物资"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12
# 设置图表的分类轴
chart.PrimaryCategoryAxis.Title = "月"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
# 设置图表的值轴
chart.PrimaryValueAxis.Title = "数量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
chart.PrimaryValueAxis.TitleArea.IsBold = True
# 设置图表系列颜色和数据标签
for cs in chart.Series:
cs.Format.Options.IsVaryColor = True
cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
# 设置图例位置
chart.Legend.Position = LegendPositionType.Top
# 保存结果文档
workbook.SaveToFile("/堆叠折线图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
申请临时 License
如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。