最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)自動(dòng)生成Excel柱狀圖的完整指南

 更新時(shí)間:2026年04月09日 08:13:28   作者:用戶835629078051  
在數(shù)據(jù)分析和報(bào)告生成場(chǎng)景中,將數(shù)據(jù)可視化是提升信息傳達(dá)效率的關(guān)鍵手段,本文主要介紹了如何使用 Spire.XLS for Python 庫在 Excel 工作表中創(chuàng)建柱狀圖,感興趣的小伙可以了解下

在數(shù)據(jù)分析和報(bào)告生成場(chǎng)景中,將數(shù)據(jù)可視化是提升信息傳達(dá)效率的關(guān)鍵手段。柱狀圖作為最常用的圖表類型之一,能夠直觀地展示不同類別之間的數(shù)值對(duì)比關(guān)系。通過 Python 自動(dòng)化生成 Excel 柱狀圖,不僅可以批量處理大量數(shù)據(jù),還能確保圖表格式的一致性和專業(yè)性。

本文介紹如何使用 Spire.XLS for Python 庫在 Excel 工作表中創(chuàng)建柱狀圖,并對(duì)圖表的標(biāo)題、坐標(biāo)軸、數(shù)據(jù)標(biāo)簽、圖例等元素進(jìn)行自定義設(shè)置。該方案適用于需要?jiǎng)討B(tài)生成報(bào)表、自動(dòng)化數(shù)據(jù)分析流程或批量導(dǎo)出可視化結(jié)果的場(chǎng)景。

環(huán)境準(zhǔn)備

首先需要安裝 Spire.XLS for Python 庫:

pip install Spire.XLS

該庫提供了完整的 Excel 文檔操作 API,支持創(chuàng)建、讀取、修改和轉(zhuǎn)換 Excel 文件,無需安裝 Microsoft Excel 應(yīng)用程序。

核心實(shí)現(xiàn)

創(chuàng)建工作簿并填充數(shù)據(jù)

創(chuàng)建柱狀圖的第一步是準(zhǔn)備數(shù)據(jù)源。需要在 Excel 工作表中組織好分類數(shù)據(jù)和對(duì)應(yīng)的數(shù)值數(shù)據(jù)。

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

def CreateChartData(sheet):
    # 設(shè)置表頭和數(shù)據(jù)
    sheet.Range["A1"].Value = "國家"
    sheet.Range["A2"].Value = "古巴"
    sheet.Range["A3"].Value = "墨西哥"
    sheet.Range["A4"].Value = "法國"
    sheet.Range["A5"].Value = "德國"
    
    sheet.Range["B1"].Value = "六月"
    sheet.Range["B2"].NumberValue = 6000
    sheet.Range["B3"].NumberValue = 8000
    sheet.Range["B4"].NumberValue = 9000
    sheet.Range["B5"].NumberValue = 8500
    
    sheet.Range["C1"].Value = "八月"
    sheet.Range["C2"].NumberValue = 3000
    sheet.Range["C3"].NumberValue = 2000
    sheet.Range["C4"].NumberValue = 2300
    sheet.Range["C5"].NumberValue = 4200
    
    # 設(shè)置單元格樣式
    sheet.Range["A1:C1"].RowHeight = 15
    sheet.Range["A1:C1"].Style.Color = Color.get_DarkGray()
    sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
    sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
    sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center
    sheet.Range["B2:C5"].Style.NumberFormat = "\"$\"#,##0"

# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "銷售數(shù)據(jù)"

# 填充圖表數(shù)據(jù)
CreateChartData(sheet)

上述代碼創(chuàng)建了一個(gè)包含三個(gè)列的數(shù)據(jù)表:第一列為國家名稱(分類),第二列和第三列分別為六月和八月的銷售數(shù)據(jù)。通過設(shè)置單元格的樣式,使表頭具有深色背景和白色字體,數(shù)值區(qū)域使用貨幣格式顯示。

創(chuàng)建基礎(chǔ)柱狀圖

數(shù)據(jù)準(zhǔn)備完成后,可以基于這些數(shù)據(jù)范圍創(chuàng)建柱狀圖對(duì)象。

# 添加圖表到工作表
chart = sheet.Charts.Add()

# 設(shè)置圖表數(shù)據(jù)范圍
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# 設(shè)置圖表位置和大小
chart.LeftColumn = 1
chart.TopRow = 6
chart.RightColumn = 11
chart.BottomRow = 29

# 設(shè)置圖表類型為簇狀柱形圖
chart.ChartType = ExcelChartType.ColumnClustered

Charts.Add() 方法在工作表中創(chuàng)建一個(gè)新的圖表對(duì)象。通過 DataRange 屬性指定圖表使用的數(shù)據(jù)區(qū)域,SeriesDataFromRange 設(shè)置為 False 表示手動(dòng)配置系列數(shù)據(jù)。圖表的位置通過行列索引來定義,這里將圖表放置在數(shù)據(jù)下方。

自定義圖表標(biāo)題和坐標(biāo)軸

圖表的可讀性很大程度上取決于標(biāo)題和坐標(biāo)軸的清晰度。

# 設(shè)置圖表標(biāo)題
chart.ChartTitle = "各國銷售市場(chǎng)分析"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 設(shè)置分類軸(X軸)
chart.PrimaryCategoryAxis.Title = "國家"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True

# 設(shè)置數(shù)值軸(Y軸)
chart.PrimaryValueAxis.Title = "銷售額(美元)"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.MinValue = 1000
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

PrimaryCategoryAxis 代表橫坐標(biāo)軸,用于顯示分類標(biāo)簽;PrimaryValueAxis 代表縱坐標(biāo)軸,用于顯示數(shù)值刻度。通過設(shè)置 HasMajorGridLines = False 可以隱藏主網(wǎng)格線,使圖表更加簡(jiǎn)潔。TextRotationAngle 屬性允許旋轉(zhuǎn)坐標(biāo)軸標(biāo)題的角度,這里設(shè)置為 90 度垂直顯示。

配置數(shù)據(jù)系列和標(biāo)簽

數(shù)據(jù)系列的視覺效果直接影響圖表的信息傳達(dá)效果。

# 配置數(shù)據(jù)系列
for cs in chart.Series:
    cs.Format.Options.IsVaryColor = True
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

IsVaryColor = True 使每個(gè)數(shù)據(jù)點(diǎn)使用不同的顏色,增強(qiáng)視覺區(qū)分度。DataLabels.HasValue = True 在每個(gè)柱子上方顯示具體的數(shù)值標(biāo)簽,便于讀者快速獲取精確數(shù)據(jù)。

設(shè)置圖例位置

圖例幫助讀者理解不同顏色代表的含義。

# 設(shè)置圖例位置
chart.Legend.Position = LegendPositionType.Top

將圖例放置在圖表頂部可以避免遮擋數(shù)據(jù)區(qū)域,同時(shí)保持布局的緊湊性。

保存文件

完成所有設(shè)置后,保存工作簿到文件。

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

圖表效果預(yù)覽

以下是上述操作創(chuàng)建的柱狀圖效果:

高級(jí)自定義功能

創(chuàng)建三維柱狀圖

除了二維柱狀圖,還可以創(chuàng)建具有立體效果的三維柱狀圖,增強(qiáng)視覺沖擊力。

# 創(chuàng)建工作簿
workbook_3d = Workbook()
sheet_3d = workbook_3d.Worksheets[0]
sheet_3d.Name = "銷售數(shù)據(jù)"

# 填充數(shù)據(jù)
CreateChartData(sheet_3d)

# 添加三維柱狀圖
chart_3d = sheet_3d.Charts.Add()
chart_3d.DataRange = sheet_3d.Range["A1:C5"]
chart_3d.SeriesDataFromRange = False

# 設(shè)置位置和大小
chart_3d.LeftColumn = 1
chart_3d.TopRow = 6
chart_3d.RightColumn = 11
chart_3d.BottomRow = 29

# 設(shè)置圖表類型為三維簇狀柱形圖
chart_3d.ChartType = ExcelChartType.Column3DClustered

# 設(shè)置標(biāo)題和坐標(biāo)軸(與二維圖表相同)
chart_3d.ChartTitle = "各國銷售市場(chǎng)分析"
chart_3d.ChartTitleArea.IsBold = True
chart_3d.ChartTitleArea.Size = 12

chart_3d.PrimaryCategoryAxis.Title = "國家"
chart_3d.PrimaryCategoryAxis.Font.IsBold = True
chart_3d.PrimaryCategoryAxis.TitleArea.IsBold = True

chart_3d.PrimaryValueAxis.Title = "銷售額(美元)"
chart_3d.PrimaryValueAxis.HasMajorGridLines = False
chart_3d.PrimaryValueAxis.MinValue = 1000
chart_3d.PrimaryValueAxis.TitleArea.IsBold = True
chart_3d.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

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

chart_3d.Legend.Position = LegendPositionType.Top

# 保存三維圖表文件
workbook_3d.SaveToFile("ClusteredColumn_3D.xlsx", ExcelVersion.Version2010)
workbook_3d.Dispose()

效果預(yù)覽:

三維柱狀圖通過將 ChartType 設(shè)置為 Column3DClustered 來實(shí)現(xiàn)。這種圖表類型在展示多層級(jí)數(shù)據(jù)或需要強(qiáng)調(diào)深度感時(shí)特別有用。

調(diào)整圖表尺寸和位置

在實(shí)際應(yīng)用中,可能需要根據(jù)頁面布局動(dòng)態(tài)調(diào)整圖表的大小和位置。

# 調(diào)整圖表位置
chart.LeftColumn = 2
chart.TopRow = 8

# 調(diào)整圖表大小
chart.RightColumn = 12
chart.BottomRow = 30

通過修改 LeftColumn、TopRowRightColumnBottomRow 屬性,可以精確控制圖表在工作表中的位置和尺寸。

自定義數(shù)據(jù)標(biāo)簽格式

數(shù)據(jù)標(biāo)簽可以進(jìn)一步自定義,以顯示更豐富的信息。

# 獲取第一個(gè)數(shù)據(jù)系列
series = chart.Series[0]

# 自定義數(shù)據(jù)標(biāo)簽
for dataPoint in series.DataPoints:
    dataPoint.DataLabels.HasValue = True
    dataPoint.DataLabels.HasPercentage = False
    dataPoint.DataLabels.Font.Size = 10
    dataPoint.DataLabels.Font.Color = Color.get_Blue()

通過遍歷數(shù)據(jù)點(diǎn),可以為每個(gè)數(shù)據(jù)標(biāo)簽單獨(dú)設(shè)置字體大小、顏色和顯示內(nèi)容。

實(shí)用技巧

批量創(chuàng)建多個(gè)圖表

當(dāng)需要為不同數(shù)據(jù)集創(chuàng)建多個(gè)圖表時(shí),可以使用循環(huán)結(jié)構(gòu)簡(jiǎn)化代碼。

datasets = [
    {"name": "第一季度", "range": "A1:D5"},
    {"name": "第二季度", "range": "F1:I5"},
    {"name": "第三季度", "range": "A10:D14"}
]

for i, dataset in enumerate(datasets):
    chart = sheet.Charts.Add()
    chart.DataRange = sheet.Range[dataset["range"]]
    chart.ChartType = ExcelChartType.ColumnClustered
    chart.ChartTitle = dataset["name"]
    chart.TopRow = 6 + i * 25  # 垂直排列圖表

這種方法可以快速生成一系列格式統(tǒng)一的圖表,適用于季度報(bào)告或月度分析場(chǎng)景。

導(dǎo)出圖表為圖片

生成的圖表可以導(dǎo)出為圖片格式,便于嵌入到其他文檔或網(wǎng)頁中。

# 將圖表保存為圖片
chart.SaveToImage("chart.png")

這一功能使得圖表可以在 PowerPoint 演示文稿、PDF 報(bào)告或 Web 頁面中復(fù)用。

總結(jié)

本文介紹了使用 Python 在 Excel 中創(chuàng)建和自定義柱狀圖的完整流程。通過 Spire.XLS for Python 庫,可以輕松實(shí)現(xiàn)以下功能:

  • 基于工作表數(shù)據(jù)創(chuàng)建二維和三維柱狀圖
  • 自定義圖表標(biāo)題、坐標(biāo)軸、圖例和數(shù)據(jù)標(biāo)簽
  • 調(diào)整圖表的位置、大小和視覺樣式
  • 批量生成多個(gè)圖表并導(dǎo)出為圖片

這些技術(shù)可以應(yīng)用于自動(dòng)化報(bào)表生成、數(shù)據(jù)可視化流水線和企業(yè)級(jí)文檔處理系統(tǒng)。通過組合不同的圖表類型和自定義選項(xiàng),可以滿足各種復(fù)雜的數(shù)據(jù)展示需求。

到此這篇關(guān)于Python實(shí)現(xiàn)自動(dòng)生成Excel柱狀圖的完整指南的文章就介紹到這了,更多相關(guān)Python生成Excel柱狀圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python操作gmail實(shí)例

    python操作gmail實(shí)例

    這篇文章主要介紹了python操作gmail的方法,實(shí)例分析了python針對(duì)gmail操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • python實(shí)現(xiàn)多進(jìn)程代碼示例

    python實(shí)現(xiàn)多進(jìn)程代碼示例

    Python中大部分情況下都需要使用多進(jìn)程,Python中提供了multiprocessing這個(gè)包實(shí)現(xiàn)多進(jìn)程。multiprocessing支持子進(jìn)程、進(jìn)程間的同步與通信,本文就詳細(xì)的介紹一下
    2018-10-10
  • Python中向上取整(Ceiling)的方法匯總

    Python中向上取整(Ceiling)的方法匯總

    在?Python?中,向上取整(Ceiling)主要有以下幾種方法,文中的示例代碼講解詳細(xì),適用于特定場(chǎng)景但易出錯(cuò),建議根據(jù)具體需求選擇合適的方法
    2026-04-04
  • python執(zhí)行系統(tǒng)命令4種方法與比較

    python執(zhí)行系統(tǒng)命令4種方法與比較

    這篇文章主要介紹了python執(zhí)行系統(tǒng)命令4種方法與比較,需要的朋友可以參考下
    2021-04-04
  • Python實(shí)現(xiàn)批量修改文件日期

    Python實(shí)現(xiàn)批量修改文件日期

    在日常工作和學(xué)習(xí)中,我們經(jīng)常需要修改文件的創(chuàng)建或修改日期,本文將介紹如何使用Python編寫一個(gè)批量文件日期修改器,有需要的可以參考下
    2025-03-03
  • Pycharm中安裝pywin32報(bào)錯(cuò)問題及解決

    Pycharm中安裝pywin32報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了Pycharm中安裝pywin32報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Python 安裝setuptools和pip工具操作方法(必看)

    Python 安裝setuptools和pip工具操作方法(必看)

    下面小編就為大家?guī)硪黄狿ython 安裝setuptools和pip工具操作方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • 在pycharm中創(chuàng)建django項(xiàng)目的示例代碼

    在pycharm中創(chuàng)建django項(xiàng)目的示例代碼

    這篇文章主要介紹了在pycharm中創(chuàng)建django項(xiàng)目的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

    Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

    今天帶大家復(fù)習(xí)python機(jī)器學(xué)習(xí)的知識(shí)點(diǎn),文中對(duì)PCA降維算法介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python機(jī)器學(xué)習(xí)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python模塊包中__init__.py文件功能分析

    Python模塊包中__init__.py文件功能分析

    這篇文章主要介紹了Python模塊包中__init__.py文件功能,簡(jiǎn)單分析了__init__.py在調(diào)入模塊和包的過程中的作用,需要的朋友可以參考下
    2016-06-06

最新評(píng)論

石嘴山市| 扎鲁特旗| 库尔勒市| 滦南县| 澄江县| 玉环县| 上高县| 新竹县| 金寨县| 鄂伦春自治旗| 蓝田县| 巴里| 安达市| 长岭县| 屏东县| 勐海县| 嘉禾县| 浦县| 宝坻区| 长宁县| 泰兴市| 丰台区| 贵港市| 山阴县| 毕节市| 聊城市| 大安市| 九江市| 吉木乃县| 梅州市| 湖北省| 定襄县| 平度市| 巴塘县| 新邵县| 澄迈县| 嘉兴市| 利川市| 皋兰县| 桃园县| 灵川县|