python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python创建Excel折线图

使用Python实现自动创建Excel折线图

作者:用户835629078051

在数据分析,财务报告和市场研究中,折线图能够清晰地呈现数据的波动模式和增长趋势,本文小编就和大家介绍一下如何使用 Python 在 Excel 工作簿中创建折线图并对其进行各种自定义设置吧

折线图是数据可视化中最常用的图表类型之一,特别适合展示数据随时间变化的趋势。在数据分析、财务报告和市场研究中,折线图能够清晰地呈现数据的波动模式和增长趋势。本文介绍如何使用 Python 在 Excel 工作簿中创建折线图,并对其进行各种自定义设置。

环境准备

首先需要安装 Spire.XLS for Python 库:

pip install Spire.XLS

该库提供了完整的 Excel 文件操作 API,支持创建、读取和修改 Excel 文档,包括图表生成功能。

创建基础折线图

创建折线图的基本流程包括:准备数据、添加图表对象、设置数据范围和配置图表属性。

from spire.xls import *
from spire.xls.common import *

# 创建工作簿和工作表
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "Line Chart"

# 准备示例数据
sheet.Range["A1"].Value = "Country"
sheet.Range["A2"].Value = "Cuba"
sheet.Range["A3"].Value = "Mexico"
sheet.Range["A4"].Value = "France"
sheet.Range["A5"].Value = "German"

sheet.Range["B1"].Value = "Jun"
sheet.Range["B2"].NumberValue = 3300
sheet.Range["B3"].NumberValue = 2300
sheet.Range["B4"].NumberValue = 4500
sheet.Range["B5"].NumberValue = 6700

sheet.Range["C1"].Value = "Jul"
sheet.Range["C2"].NumberValue = 7500
sheet.Range["C3"].NumberValue = 2900
sheet.Range["C4"].NumberValue = 2300
sheet.Range["C5"].NumberValue = 4200

sheet.Range["D1"].Value = "Aug"
sheet.Range["D2"].NumberValue = 7400
sheet.Range["D3"].NumberValue = 6900
sheet.Range["D4"].NumberValue = 7800
sheet.Range["D5"].NumberValue = 4200

sheet.Range["E1"].Value = "Sep"
sheet.Range["E2"].NumberValue = 8000
sheet.Range["E3"].NumberValue = 7200
sheet.Range["E4"].NumberValue = 8500
sheet.Range["E5"].NumberValue = 5600

# 设置标题行样式
sheet.Range["A1:E1"].Style.Color = Color.get_DarkGray()
sheet.Range["A1:E1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:E1"].Style.HorizontalAlignment = HorizontalAlignType.Center

# 添加折线图
chart = sheet.Charts.Add()
chart.ChartType = ExcelChartType.Line

# 设置图表数据范围
chart.DataRange = sheet.Range["A1:E5"]

# 设置图表位置
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 11
chart.BottomRow = 29

# 设置图表标题
chart.ChartTitle = "Sales market by country"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 配置坐标轴
chart.PrimaryCategoryAxis.Title = "Month"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryValueAxis.Title = "Sales(in Dollars)"
chart.PrimaryValueAxis.HasMajorGridLines = False

# 显示数据标签
for cs in chart.Series:
    cs.Format.Options.IsVaryColor = True
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# 保存文件
workbook.SaveToFile("Line.xlsx", ExcelVersion.Version2010)
workbook.Dispose()

结果文档预览:

上述代码首先在工作表中填充了四个国家六个月的销售数据,然后通过 Charts.Add() 方法创建图表对象。ChartType 属性设置为 ExcelChartType.Line 指定生成折线图。数据范围通过 DataRange 属性绑定到单元格区域 A1:E5。

添加数据标记

在某些场景下,需要在折线图的每个数据点上添加标记,以便更清晰地标识具体数值位置。可以通过设置 MarkerStyle 属性实现这一效果。

# ...

# 将折线图更改为带标记的折线图
chart.ChartType = ExcelChartType.LineMarkers

# ...

# 显示数据标签
for cs in chart.Series:
    cs.Format.Options.IsVaryColor = True
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# 为每个数据系列添加圆形标记
for cs1 in chart.Series:
    cs = ChartSerie(cs1)
    cs.Format.Options.IsVaryColor = True
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    cs.DataFormat.MarkerStyle = ChartMarkerType.Circle

chart.Legend.Position = LegendPositionType.Top
workbook.SaveToFile("Line_Circle.xlsx", ExcelVersion.Version2010)
workbook.Dispose()

结果文档预览:

通过将 MarkerStyle 设置为 ChartMarkerType.Circle,每个数据点都会显示为圆形标记。除了圆形,还可以选择其他标记样式,如方形、三角形或菱形等。

创建三维折线图

对于需要更强视觉冲击力的演示场景,可以使用三维折线图。三维效果能够增强图表的立体感和层次感。

# ...

# 创建三维折线图
chart.ChartType = ExcelChartType.Line3D

# ...

# 设置坐标轴标题旋转角度
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90
chart.PrimaryValueAxis.MinValue = 1000

for cs in chart.Series:
    cs.Format.Options.IsVaryColor = True
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

chart.PlotArea.Fill.Visible = False
workbook.SaveToFile("Line_3D.xlsx", ExcelVersion.Version2010)
workbook.Dispose()

结果文档预览:

三维折线图的创建方式与二维类似,只需将 ChartType 设置为 ExcelChartType.Line3D。此外,还可以通过调整 TextRotationAngle 属性旋转坐标轴标题的角度,使图表布局更加合理。

自定义图表样式

折线图的外观可以通过多种方式进行定制,包括颜色、字体、网格线和图例位置等。

# 自定义图表样式
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 设置主分类轴
chart.PrimaryCategoryAxis.Title = "Month"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True

# 设置主数值轴
chart.PrimaryValueAxis.Title = "Sales(in Dollars)"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.MinValue = 1000

# 隐藏绘图区背景
chart.PlotArea.Fill.Visible = False

# 设置图例位置
chart.Legend.Position = LegendPositionType.Top

结果文档预览:

通过访问 PrimaryCategoryAxisPrimaryValueAxis 对象,可以分别配置横轴和纵轴的标题、字体和网格线。PlotArea.Fill.Visible 属性控制绘图区背景的可见性,设置为 False 可以使图表更加简洁。

实用技巧

在实际应用中,以下技巧能够提升折线图的实用性和可读性:

总结

本文介绍了使用 Python 在 Excel 中创建折线图的完整流程,包括基础折线图、带标记的折线图和三维折线图的实现方法。通过调整图表类型、数据标记、坐标轴属性和样式设置,可以生成满足各种需求的专业级数据可视化图表。

折线图适用于展示时间序列数据、趋势分析和对比分析等场景。掌握这些技术后,可以将其应用于财务报表生成、销售数据分析和市场趋势研究等实际工作中。

以上就是使用Python实现自动创建Excel折线图的详细内容,更多关于Python创建Excel折线图的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文