使用Python實現自動創(chuàng)建Excel折線圖

折線圖是數據可視化中最常用的圖表類型之一,特別適合展示數據隨時間變化的趨勢。在數據分析、財務報告和市場研究中,折線圖能夠清晰地呈現數據的波動模式和增長趨勢。本文介紹如何使用 Python 在 Excel 工作簿中創(chuàng)建折線圖,并對其進行各種自定義設置。
環(huán)境準備
首先需要安裝 Spire.XLS for Python 庫:
pip install Spire.XLS
該庫提供了完整的 Excel 文件操作 API,支持創(chuàng)建、讀取和修改 Excel 文檔,包括圖表生成功能。
創(chuàng)建基礎折線圖
創(chuàng)建折線圖的基本流程包括:準備數據、添加圖表對象、設置數據范圍和配置圖表屬性。
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建工作簿和工作表
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() 方法創(chuàng)建圖表對象。ChartType 屬性設置為 ExcelChartType.Line 指定生成折線圖。數據范圍通過 DataRange 屬性綁定到單元格區(qū)域 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,每個數據點都會顯示為圓形標記。除了圓形,還可以選擇其他標記樣式,如方形、三角形或菱形等。
創(chuàng)建三維折線圖
對于需要更強視覺沖擊力的演示場景,可以使用三維折線圖。三維效果能夠增強圖表的立體感和層次感。
# ...
# 創(chuàng)建三維折線圖
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()
結果文檔預覽:

三維折線圖的創(chuàng)建方式與二維類似,只需將 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 # 隱藏繪圖區(qū)背景 chart.PlotArea.Fill.Visible = False # 設置圖例位置 chart.Legend.Position = LegendPositionType.Top
結果文檔預覽:

通過訪問 PrimaryCategoryAxis 和 PrimaryValueAxis 對象,可以分別配置橫軸和縱軸的標題、字體和網格線。PlotArea.Fill.Visible 屬性控制繪圖區(qū)背景的可見性,設置為 False 可以使圖表更加簡潔。
實用技巧
在實際應用中,以下技巧能夠提升折線圖的實用性和可讀性:
- 數據標簽顯示:通過
DataLabels.HasValue = True在每個數據點旁顯示具體數值,便于讀者快速獲取信息 - 多系列顏色區(qū)分:設置
IsVaryColor = True為不同數據系列分配不同顏色,提高辨識度 - 網格線控制:根據數據密度決定是否顯示網格線,避免圖表過于雜亂
- 圖例位置調整:將圖例放置在頂部或底部,為數據區(qū)域留出更多空間
總結
本文介紹了使用 Python 在 Excel 中創(chuàng)建折線圖的完整流程,包括基礎折線圖、帶標記的折線圖和三維折線圖的實現方法。通過調整圖表類型、數據標記、坐標軸屬性和樣式設置,可以生成滿足各種需求的專業(yè)級數據可視化圖表。
折線圖適用于展示時間序列數據、趨勢分析和對比分析等場景。掌握這些技術后,可以將其應用于財務報表生成、銷售數據分析和市場趨勢研究等實際工作中。
以上就是使用Python實現自動創(chuàng)建Excel折線圖的詳細內容,更多關于Python創(chuàng)建Excel折線圖的資料請關注腳本之家其它相關文章!
相關文章
Python中l(wèi)ist列表的賦值方法及遇到問題處理
這篇文章主要介紹了Python中l(wèi)ist列表的賦值方法及遇到問題處理,記錄在列表list的賦值過程中遇到的問題,并對列表的拷貝相關知識進行匯總,需要的朋友可以參考一下2022-03-03
python+Django+pycharm+mysql 搭建首個web項目詳解
這篇文章主要介紹了python+Django+pycharm+mysql 搭建首個web項目,結合實例形式詳細分析了python+Django+pycharm+mysql搭建web項目的具體步驟與相關操作技巧,需要的朋友可以參考下2019-11-11
python pandas dataframe 按列或者按行合并的方法
下面小編就為大家分享一篇python pandas dataframe 按列或者按行合并的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04

