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

使用Python創(chuàng)建PowerPoint各種圖表的詳細教程

 更新時間:2025年08月12日 10:28:08   作者:nuclear2011  
本文介紹了如何使用Python自動化生成PowerPoint場景圖表,包含柱狀圖、條形圖、餅圖、折線圖、漏斗圖和瀑布圖等,有需要的小伙伴可以了解下

在 PowerPoint 中創(chuàng)建圖表是一種高效的數(shù)據(jù)可視化方式,能夠幫助將復雜信息更直觀地呈現(xiàn),提升表達效果。通過 Python 實現(xiàn)圖表自動化生成,不僅節(jié)省時間,還能減少手動操作的錯誤,提高演示文稿的專業(yè)度和制作效率。

本文將介紹如何使用 Python 創(chuàng)建多種類型的 PowerPoint 圖表,包括柱狀圖、條形圖、餅圖、折線圖、漏斗圖和瀑布圖。此外,還將展示如何使用 Excel 數(shù)據(jù)生成 PowerPoint 圖表。

為什么使用 Python 創(chuàng)建 PowerPoint 圖表

使用代碼生成 PowerPoint 圖表有以下優(yōu)勢:

  • 自動化:支持定期自動生成圖表,減少重復手動操作。
  • 動態(tài)數(shù)據(jù):可基于實時或定期更新的數(shù)據(jù)源(如數(shù)據(jù)庫或 Excel)動態(tài)生成圖表。
  • 無需圖形界面:無需安裝 Microsoft Office,也能創(chuàng)建和編輯演示文稿。
  • 批量處理:通過簡單代碼一次性批量生成多個圖表或完整演示文稿。

使用工具

要在PowerPoint中生成圖表,需要使用合適的PowerPoint文檔處理庫。本文所使用的是 Spire.Presentation for Python 庫。該庫支持創(chuàng)建、編輯和轉換 PowerPoint 文件,兼容 .ppt 和 .pptx 格式,且不依賴于本地安裝的 Microsoft PowerPoint 軟件。

安裝方法

在項目終端中執(zhí)行以下命令,安裝 Spire.Presentation 庫:

pip install spire.presentation

安裝完成后,即可在 Python 腳本中導入 spire.presentation,開始創(chuàng)建和操作 PowerPoint圖表。

使用 Python 在 PowerPoint 中創(chuàng)建各類圖表

Spire.Presentation 支持多種圖表類型,包括以下各種常見的類型:

  • 柱狀圖(Column Chart)
  • 條形圖(Bar Chart)
  • 餅圖(Pie Chart)
  • 環(huán)形圖(Doughnut Chart)
  • 折線圖(Line Chart)
  • 面積圖(Area Chart)
  • 散點圖(Scatter Chart)
  • 股票圖(Stock Chart)
  • 氣泡圖(Bubble Chart)
  • 雷達圖(Radar Chart)
  • 漏斗圖(Funnel Chart)
  • 瀑布圖(Waterfall Chart)
  • 箱線圖(Box and Whisker Chart)
  • 直方圖(Histogram Chart)
  • 帕累托圖(Pareto Chart)
  • 矩陣樹圖(TreeMap Chart)
  • 旭日圖(SunBurst Chart)
  • 地圖圖表(Map Chart)

使用 Python 在 PowerPoint 中創(chuàng)建圖表的實現(xiàn)步驟

  • 創(chuàng)建 Presentation 對象
  • 獲取目標幻燈片
  • 使用 AppendChart() 方法插入所需類型的圖表
  • 填充圖表數(shù)據(jù)
  • 設置圖表樣式(顏色、圖例、標題等)
  • 保存演示文稿

柱狀圖

柱狀圖通過垂直柱形來展示各類別的數(shù)據(jù)大小,是對比不同分類或時間段數(shù)據(jù)的理想選擇。常用于展示季度銷售、年度增長、產品對比等。

以下代碼展示了如何使用Python在PowerPoint中生成柱狀圖:

from spire.presentation import *


# 創(chuàng)建演示文稿對象
presentation = Presentation()

# 獲取第一張幻燈片
slide = presentation.Slides[0]

# 添加簇狀柱狀圖,設置圖表的位置和尺寸
chart = slide.Shapes.AppendChart(ChartType.ColumnClustered, RectangleF.FromLTRB(100, 80, 620, 440))

# 設置系列標簽(季度)
chart.ChartData[0, 1].Text = "第一季度"
chart.ChartData[0, 2].Text = "第二季度"
chart.ChartData[0, 3].Text = "第三季度"

# 設置分類標簽(地區(qū))
chart.ChartData[1, 0].Text = "北美"
chart.ChartData[2, 0].Text = "歐洲"
chart.ChartData[3, 0].Text = "亞洲"
chart.ChartData[4, 0].Text = "南美"

# 定義三個系列的銷售數(shù)據(jù)(每列代表一個季度,每行為不同地區(qū)的銷售額)
series_data = {
    "系列1": [20000, 22000, 18000, 30000],
    "系列2": [15000, 26000, 20000, 26000],
    "系列3": [17000, 24000, 22000, 28000]
}

# 向圖表中填充數(shù)據(jù)
for i, (key, values) in enumerate(series_data.items()):
    for j, val in enumerate(values):
        chart.ChartData[j + 1, i + 1].NumberValue = val

# 設置系列標簽(即圖例中顯示的系列名稱,B1 至 D1 區(qū)域)
chart.Series.SeriesLabel = chart.ChartData["B1", "D1"]

# 設置分類軸標簽(即橫軸顯示的地區(qū)名稱,A2 至 A5 區(qū)域)
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]

# 分別設置每個系列對應的數(shù)值區(qū)域
chart.Series[0].Values = chart.ChartData["B2", "B5"]
chart.Series[1].Values = chart.ChartData["C2", "C5"]
chart.Series[2].Values = chart.ChartData["D2", "D5"]

# 設置柱狀圖中柱形之間的間距和重疊程度
chart.GapWidth = 219
# 負值表示柱子之間有間隙,不重疊        
chart.OverLap = -27         

# 設置圖例位置為底部
chart.ChartLegend.Position = ChartLegendPositionType.Bottom

# 設置圖表標題
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "季度銷售表現(xiàn)"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.TextProperties.Paragraphs[0].DefaultCharacterProperties.IsBold = TriState.TFalse
chart.ChartTitle.Height = 25

# 保存為PPTX文件并釋放資源
presentation.SaveToFile("柱狀圖.pptx", FileFormat.Pptx2016)
presentation.Dispose()

條形圖

條形圖的結構類似于柱狀圖,但數(shù)據(jù)以水平條形呈現(xiàn),更適合類目名稱較長的場景。條形圖常用于橫向對比,如各地區(qū)人口、部門預算等。

以下代碼展示了如何使用Python在PowerPoint中生成條形圖:

from spire.presentation import *

# 創(chuàng)建演示文稿對象
presentation = Presentation()

# 獲取第一張幻燈片
slide = presentation.Slides[0]

# 向幻燈片中添加一個簇狀條形圖
chart = slide.Shapes.AppendChart(ChartType.BarClustered, RectangleF.FromLTRB(100, 80, 620, 440))

# 定義類別名稱(水果名稱)和每年的數(shù)據(jù)
categories = ["蘋果", "香蕉", "櫻桃", "椰棗"]
series_data = {
    "2019年": [500, 700, 600, 400],
    "2020年": [600, 800, 700, 450]
}

# 設置圖表的類別標簽(位于第一列)
for i, cat in enumerate(categories, start=1):
    chart.ChartData[i, 0].Text = cat

# 設置圖表的系列名稱(位于第一行)
for i, series_name in enumerate(series_data.keys(), start=1):
    chart.ChartData[0, i].Text = series_name

# 填充圖表數(shù)據(jù)區(qū)域的值
for col_idx, values in enumerate(series_data.values(), start=1):
    for row_idx, val in enumerate(values, start=1):
        chart.ChartData[row_idx, col_idx].NumberValue = val

# 設置系列標簽區(qū)域(B1 到 C1)
chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]

# 設置類別標簽區(qū)域(A1 到 A4)
chart.Categories.CategoryLabels = chart.ChartData["A1", "A4"]

# 設置每個系列對應的數(shù)據(jù)區(qū)域(數(shù)值區(qū)域)
chart.Series[0].Values = chart.ChartData["B2", "B5"]
chart.Series[1].Values = chart.ChartData["C2", "C5"]

# 定義每個系列的填充顏色
fill_colors = [
    Color.FromRgb(91, 155, 213),   # 系列 1(藍色)
    Color.FromRgb(237, 125, 49),   # 系列 2(橙色)
]

# 設置系列填充樣式為純色,并應用定義的顏色
for index, color in enumerate(fill_colors):
    chart.Series[index].Fill.FillType = FillFormatType.Solid
    chart.Series[index].Fill.SolidColor.Color = color

# 保存演示文稿到文件
presentation.SaveToFile("條形圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

餅圖

餅圖用于表示整體中各部分的比例關系,通過扇形展示各數(shù)據(jù)項所占的百分比。適用于展示市場份額、預算分配等組成結構。

以下代碼展示了如何使用Python在PowerPoint中生成餅圖:

from spire.presentation import * 

# 創(chuàng)建 Presentation 對象并獲取第一張幻燈片
presentation = Presentation()
slide = presentation.Slides[0]

# 向幻燈片中添加一個餅圖,指定圖表類型和位置大小
chart = slide.Shapes.AppendChart(ChartType.Pie, RectangleF.FromLTRB(150, 150, 450, 450))

# 定義圖表的分類和對應的數(shù)值
categories = ["Chrome", "Firefox", "Edge", "Safari"]
values = [58.9, 13.3, 12.7, 9.6]

# 填充圖表數(shù)據(jù)區(qū)域:
# A1:A4 單元格用于表示分類(瀏覽器名稱)
# B1:B4 單元格用于表示對應的市場份額數(shù)值
for i in range(len(categories)):
    chart.ChartData[i + 1, 0].Text = categories[i]
    chart.ChartData[i + 1, 1].NumberValue = values[i]

# 設置分類標簽范圍為 A2:A5,數(shù)據(jù)值范圍為 B2:B5
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]
chart.Series[0].Values = chart.ChartData["B2", "B5"]

# 設置圖表標題內容、居中樣式和標題高度
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "瀏覽器市場份額"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25

# 保存為 PowerPoint 文件并釋放資源
presentation.SaveToFile("餅圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

折線圖

折線圖通過連接各數(shù)據(jù)點的線段,展示數(shù)據(jù)隨時間的變化趨勢。適合用于時間序列數(shù)據(jù),如年度營收變化、網站流量趨勢等。

以下代碼展示了如何使用Python在PowerPoint中生成折線圖:

from spire.presentation import *

# 創(chuàng)建 Presentation 對象并獲取第一張幻燈片
presentation = Presentation()
slide = presentation.Slides[0]

# 向幻燈片中添加一個折線圖,指定圖表在幻燈片中的位置和大小
chart = slide.Shapes.AppendChart(ChartType.Line, RectangleF.FromLTRB(100, 80, 620, 440))

# 定義圖表的類別
categories = ["一月", "二月", "三月", "四月"]

# 定義兩個系列的數(shù)據(jù),表示兩個產品在不同月份的銷量
series_data = {
    "產品 A": [150, 200, 180, 220],
    "產品 B": [120, 140, 160, 180]
}

# 設置圖表的類別標簽
for i, cat in enumerate(categories, start=1):
    chart.ChartData[i, 0].Text = cat

# 設置系列名稱
for i, name in enumerate(series_data.keys(), start=1):
    chart.ChartData[0, i].Text = name

# 填充系列數(shù)據(jù)
for col_idx, values in enumerate(series_data.values(), start=1):
    for row_idx, val in enumerate(values, start=1):
        chart.ChartData[row_idx, col_idx].NumberValue = val

# 指定系列標簽的范圍(B1 到 C1)
chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]

# 指定類別標簽的范圍(A2 到 A5)
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]

# 為每個系列分別設置數(shù)據(jù)范圍(B2:B5 和 C2:C5)
chart.Series[0].Values = chart.ChartData["B2", "B5"]
chart.Series[1].Values = chart.ChartData["C2", "C5"]

# 添加圖表標題
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "各產品月度銷售趨勢"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25

# 保存為 PowerPoint 文件并釋放資源
presentation.SaveToFile("折線圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

漏斗圖

漏斗圖用于表示某一流程的逐步轉化情況,例如銷售漏斗、用戶轉化路徑等。它能清晰展現(xiàn)各階段的數(shù)量遞減關系,幫助識別流程中流失嚴重的環(huán)節(jié)。

以下代碼展示了如何使用Python在PowerPoint中生成漏斗圖:

from spire.presentation import *

# 創(chuàng)建 Presentation 對象并獲取第一張幻燈片
presentation = Presentation()
slide = presentation.Slides[0]

# 向幻燈片添加一個漏斗圖,設置圖表在頁面中的位置和大小
chart = slide.Shapes.AppendChart(ChartType.Funnel, RectangleF.FromLTRB(100, 100, 600, 400))

# 定義漏斗各階段的名稱和對應的數(shù)值
stages = ["潛在客戶", "銷售機會", "報價方案", "成交客戶"]
values = [1000, 600, 300, 120]

# 填充圖表數(shù)據(jù)區(qū)域
for i in range(len(stages)):
    chart.ChartData[i + 1, 0].Text = stages[i]
    chart.ChartData[i + 1, 1].NumberValue = values[i]

# 設置圖表的分類標簽和系列值
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]
chart.Series[0].Values = chart.ChartData["B2", "B5"]

# 添加圖表標題并設置樣式
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "銷售漏斗階段"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25

# 保存演示文稿并釋放資源
presentation.SaveToFile("漏斗圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

瀑布圖

瀑布圖展示數(shù)值的累計過程,適用于拆解整體變化的構成因素。常用于財務數(shù)據(jù)分析,如利潤構成、成本變化等,能直觀反映每一步對最終結果的影響。

以下代碼展示了如何使用Python在PowerPoint中生成瀑布圖:

from spire.presentation import *

# 創(chuàng)建 Presentation 對象并獲取第一張幻燈片
presentation = Presentation()
slide = presentation.Slides[0]

# 在幻燈片中添加瀑布圖,設置圖表在幻燈片中的位置和大小
chart = slide.Shapes.AppendChart(ChartType.WaterFall, RectangleF.FromLTRB(100, 100, 600, 400))

# 定義各階段名稱和對應的數(shù)值
categories = ["起始", "收入", "成本", "利潤"]
values = [0, 8000, -3000, 5000]

# 向圖表中填充數(shù)據(jù)
for i in range(len(categories)):
    chart.ChartData[i + 1, 0].Text = categories[i]
    chart.ChartData[i + 1, 1].NumberValue = values[i]

# 設置類別標簽范圍
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]

# 設置系列對應的數(shù)值范圍
chart.Series[0].Values = chart.ChartData["B2", "B5"]

# 設置圖表標題
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "利潤構成分析"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25

# 保存演示文稿并釋放資源
presentation.SaveToFile("瀑布圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

使用 Python 和 Excel 數(shù)據(jù)生成 PowerPoint 圖表

通過將 Excel 中的數(shù)據(jù)導入 PowerPoint 來生成圖表,可以實現(xiàn)數(shù)據(jù)與演示內容的自動同步更新,避免手動復制粘貼的繁瑣和錯誤,確保演示文稿中的信息始終反映最新的業(yè)務數(shù)據(jù)。這種方法特別適用于需要定期匯報銷售、財務、市場等數(shù)據(jù)的場景,大幅提升數(shù)據(jù)處理效率和報告的專業(yè)度。

第一步:使用 pandas 讀取 Excel 數(shù)據(jù)

pandas 是 Python 中強大的數(shù)據(jù)處理庫,可以方便地讀取和操作 Excel 文件。首先確保安裝 pandas 庫:

pip install pandas

安裝完成后,利用 pandas 將 Excel 中指定工作表的數(shù)據(jù)加載到 DataFrame 結構中,這樣就可以方便地訪問和操作表格內容。

import pandas as pd

# 讀取 Excel 文件中名為 'Sheet1' 的工作表
df = pd.read_excel('銷售數(shù)據(jù).xlsx', sheet_name='Sheet1')

DataFrame 是一個二維表格結構,類似于 Excel 的工作表,便于進行后續(xù)的數(shù)據(jù)篩選、計算與傳遞。

第二步:創(chuàng)建 PowerPoint 圖表并填充 Excel 數(shù)據(jù)

借助 Spire.Presentation 庫,可以在 PowerPoint 幻燈片中動態(tài)創(chuàng)建圖表,并將剛剛讀取的 Excel 數(shù)據(jù)填充進去,實現(xiàn)圖表的自動生成。

from spire.presentation import *

# 創(chuàng)建演示文稿對象并獲取第一張幻燈片
presentation = Presentation()
slide = presentation.Slides[0]

# 向幻燈片中添加一個簇狀柱形圖
chart = slide.Shapes.AppendChart(ChartType.ColumnClustered, RectangleF.FromLTRB(100, 80, 620, 440))

# 設置系列名稱
quarters = df.columns[1:].tolist() 
for i, quarter in enumerate(quarters, start=1):
    chart.ChartData[0, i].Text = quarter

# 設置分類標簽
regions = df[df.columns[0]].tolist()  
for i, region in enumerate(regions, start=1):
    chart.ChartData[i, 0].Text = region

# 填充圖表數(shù)據(jù)
for i in range(len(regions)):
    for j in range(len(quarters)):
        chart.ChartData[i + 1, j + 1].NumberValue = df.iloc[i, j + 1]

# 設置系列名稱的單元格范圍(B1 到 D1)
chart.Series.SeriesLabel = chart.ChartData["B1", "D1"]

# 設置分類標簽的單元格范圍(A2 到 A4)
chart.Categories.CategoryLabels = chart.ChartData["A2", f"A{len(regions)+1}"]

# 設置每個系列的數(shù)值區(qū)域(B2:B4、C2:C4、D2:D4)
for i in range(len(quarters)):
    col_letter = chr(66 + i)  # B、C、D...
    start_cell = f"{col_letter}2"
    end_cell = f"{col_letter}{len(regions)+1}"
    chart.Series[i].Values = chart.ChartData[start_cell, end_cell]

# 設置圖表標題
chart.HasTitle = True
chart.ChartTitle.TextProperties.Text = "各地區(qū)季度銷售額"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 25

# 保存演示文稿
presentation.SaveToFile("各地區(qū)季度銷售圖.pptx", FileFormat.Pptx2010)
presentation.Dispose()

總結

利用 Python 實現(xiàn) PowerPoint 圖表的自動化生成,能夠顯著提升數(shù)據(jù)可視化的效率與一致性,幫助用戶快速制作專業(yè)且易于理解的演示內容。本文介紹了如何在PPT中生成多種常用的圖表類型,如柱狀圖、條形圖、餅圖、折線圖、漏斗圖和瀑布圖等,并展示了如何從 Excel 讀取數(shù)據(jù)填充圖表。

除了本文例子中展示的圖表類型,你還可以嘗試很多其他圖表,如雷達圖、箱線圖等,以滿足不同的數(shù)據(jù)展示需求。

以上就是使用Python創(chuàng)建PowerPoint各種圖表的詳細教程的詳細內容,更多關于Python創(chuàng)建PowerPoint圖表的資料請關注腳本之家其它相關文章!

相關文章

最新評論

沙洋县| 珠海市| 千阳县| 武城县| 于都县| 静宁县| 凤庆县| 香格里拉县| 涞水县| 台州市| 肃南| 特克斯县| 宿迁市| 怀远县| 丰城市| 乌拉特中旗| 辽中县| 固阳县| 东乡| 嘉黎县| 紫金县| 宿迁市| 绵竹市| 新疆| 台山市| 天门市| 敦煌市| 济南市| 游戏| 洪湖市| 通道| 太和县| 桐梓县| 合水县| 龙江县| 连平县| 灵川县| 固阳县| 陵川县| 金塔县| 山丹县|