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

Python代碼上線在PowerPoint中生成并自定義餅圖與環(huán)形圖

 更新時(shí)間:2026年05月17日 08:47:26   作者:用戶835629078051  
在數(shù)據(jù)可視化場(chǎng)景中,餅圖和環(huán)形圖是展示比例關(guān)系和市場(chǎng)份額的理想選擇,本文介紹如何使用 Spire.Presentation for Python 在 PowerPoint 演示文稿中創(chuàng)建和自定義餅圖與環(huán)形圖,包括數(shù)據(jù)綁定、顏色定制和標(biāo)簽設(shè)置等核心功能,希望對(duì)大家有所幫助

在數(shù)據(jù)可視化場(chǎng)景中,餅圖和環(huán)形圖是展示比例關(guān)系和市場(chǎng)份額的理想選擇。通過 Python 自動(dòng)化生成這些圖表,可以高效地將數(shù)據(jù)轉(zhuǎn)換為直觀的視覺呈現(xiàn),適用于銷售報(bào)告、市場(chǎng)分析和管理演示等場(chǎng)景。

本文介紹如何使用 Spire.Presentation for Python 在 PowerPoint 演示文稿中創(chuàng)建和自定義餅圖與環(huán)形圖,包括數(shù)據(jù)綁定、顏色定制和標(biāo)簽設(shè)置等核心功能。

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

首先安裝 Spire.Presentation 庫(kù):

pip install Spire.Presentation

該庫(kù)提供了完整的 PowerPoint 操作 API,支持創(chuàng)建各種類型的圖表并進(jìn)行精細(xì)化定制。

創(chuàng)建餅圖

餅圖適合展示各部分占整體的比例關(guān)系。以下示例演示如何創(chuàng)建一個(gè)展示季度銷售額的餅圖。

基本實(shí)現(xiàn)步驟

創(chuàng)建餅圖的核心流程包括:初始化演示文檔、添加圖表對(duì)象、綁定數(shù)據(jù)源、配置圖表屬性,最后保存文件。

from spire.presentation.common import *
from spire.presentation import *

# 創(chuàng)建演示文檔
presentation = Presentation()

# 在第一張幻燈片中添加餅圖,設(shè)置位置和大小
rect = RectangleF.FromLTRB(40, 100, 590, 420)
chart = presentation.Slides[0].Shapes.AppendChartInit(ChartType.Pie, rect, False)

# 設(shè)置圖表標(biāo)題
chart.ChartTitle.TextProperties.Text = "季度銷售額"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30
chart.HasTitle = True

# 定義數(shù)據(jù)
quarters = ["第一季度", "第二季度", "第三季度", "第四季度"]
sales = [210, 320, 180, 500]

# 將數(shù)據(jù)寫入圖表數(shù)據(jù)表
chart.ChartData[0, 0].Text = "季度"
chart.ChartData[0, 1].Text = "銷售額"

for i in range(len(quarters)):
    chart.ChartData[i + 1, 0].Text = quarters[i]
    chart.ChartData[i + 1, 1].NumberValue = sales[i]

# 綁定數(shù)據(jù)系列
chart.Series.SeriesLabel = chart.ChartData["B1", "B1"]
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]
chart.Series[0].Values = chart.ChartData["B2", "B5"]

# 為每個(gè)數(shù)據(jù)點(diǎn)設(shè)置不同顏色
for i in range(len(chart.Series[0].Values)):
    cdp = ChartDataPoint(chart.Series[0])
    cdp.Index = i
    chart.Series[0].DataPoints.Add(cdp)

chart.Series[0].DataPoints[0].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[0].Fill.SolidColor.Color = Color.get_RosyBrown()
chart.Series[0].DataPoints[1].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[1].Fill.SolidColor.Color = Color.get_LightBlue()
chart.Series[0].DataPoints[2].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[2].Fill.SolidColor.Color = Color.get_LightPink()
chart.Series[0].DataPoints[3].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[3].Fill.SolidColor.Color = Color.get_MediumPurple()

# 顯示數(shù)值和百分比標(biāo)簽
chart.Series[0].DataLabels.LabelValueVisible = True
chart.Series[0].DataLabels.PercentValueVisible = True

# 保存文件
presentation.SaveToFile("餅圖示例.pptx", FileFormat.Pptx2013)
presentation.Dispose()

結(jié)果預(yù)覽:

代碼解析

AppendChartInit 方法用于在指定位置添加圖表,第一個(gè)參數(shù)指定圖表類型,第二個(gè)參數(shù)定義矩形區(qū)域。

數(shù)據(jù)通過 ChartData 二維數(shù)組進(jìn)行綁定,其中 [行,列] 索引對(duì)應(yīng)單元格位置。SeriesLabel 指定系列名稱來源,CategoryLabels 設(shè)置分類標(biāo)簽范圍,Values 綁定實(shí)際數(shù)值數(shù)據(jù)。

每個(gè)數(shù)據(jù)點(diǎn)通過 ChartDataPoint 對(duì)象單獨(dú)配置,可以精確控制顏色和樣式。DataLabels 屬性控制標(biāo)簽顯示內(nèi)容,同時(shí)顯示數(shù)值和百分比能提供更完整的信息。

創(chuàng)建環(huán)形圖

環(huán)形圖是餅圖的變體,中心留空形成環(huán)狀結(jié)構(gòu),視覺上更加現(xiàn)代,適合展示市場(chǎng)占有率等對(duì)比數(shù)據(jù)。

實(shí)現(xiàn)方法

環(huán)形圖的創(chuàng)建流程與餅圖類似,主要區(qū)別在于圖表類型和額外的環(huán)形尺寸設(shè)置。

from spire.presentation.common import *
from spire.presentation import *

# 創(chuàng)建演示文檔
presentation = Presentation()
rect = RectangleF.FromLTRB(80, 100, 630, 420)

# 添加環(huán)形圖
chart = presentation.Slides[0].Shapes.AppendChartInit(ChartType.Doughnut, rect, False)

# 設(shè)置標(biāo)題
chart.ChartTitle.TextProperties.Text = "各國(guó)市場(chǎng)份額"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30

# 定義數(shù)據(jù)
countries = ["古巴", "墨西哥", "法國(guó)", "德國(guó)"]
sales = [1800, 3000, 5100, 6200]

# 寫入數(shù)據(jù)
chart.ChartData[0, 0].Text = "國(guó)家"
chart.ChartData[0, 1].Text = "銷售額"

for i in range(len(countries)):
    chart.ChartData[i + 1, 0].Text = countries[i]
    chart.ChartData[i + 1, 1].NumberValue = sales[i]

# 綁定數(shù)據(jù)系列
chart.Series.SeriesLabel = chart.ChartData["B1", "B1"]
chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"]
chart.Series[0].Values = chart.ChartData["B2", "B5"]

# 添加數(shù)據(jù)點(diǎn)并設(shè)置顏色
for i in range(len(chart.Series[0].Values)):
    cdp = ChartDataPoint(chart.Series[0])
    cdp.Index = i
    chart.Series[0].DataPoints.Add(cdp)

chart.Series[0].DataPoints[0].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[0].Fill.SolidColor.Color = Color.get_LightBlue()
chart.Series[0].DataPoints[1].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[1].Fill.SolidColor.Color = Color.get_MediumPurple()
chart.Series[0].DataPoints[2].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[2].Fill.SolidColor.Color = Color.get_DarkGray()
chart.Series[0].DataPoints[3].Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints[3].Fill.SolidColor.Color = Color.get_DarkOrange()

# 顯示標(biāo)簽
chart.Series[0].DataLabels.LabelValueVisible = True
chart.Series[0].DataLabels.PercentValueVisible = True

# 設(shè)置環(huán)形孔洞大小(0-90之間)
chart.Series[0].DoughnutHoleSize = 60

# 保存文件
presentation.SaveToFile("環(huán)形圖示例.pptx", FileFormat.Pptx2013)
presentation.Dispose()

結(jié)果預(yù)覽:

關(guān)鍵特性

DoughnutHoleSize 屬性控制環(huán)形圖中心空白區(qū)域的大小,取值范圍為 0 到 90。數(shù)值越大,中心空洞越大,環(huán)形越細(xì)。默認(rèn)值通常為 50-60,能在美觀性和可讀性之間取得平衡。

環(huán)形圖的數(shù)據(jù)綁定方式與餅圖完全相同,可以復(fù)用相同的數(shù)據(jù)處理邏輯。

高級(jí)定制技巧

動(dòng)態(tài)顏色分配

在實(shí)際應(yīng)用中,可能需要根據(jù)數(shù)據(jù)量動(dòng)態(tài)分配顏色??梢允褂妙A(yù)定義的顏色列表循環(huán)應(yīng)用:

# 預(yù)定義顏色列表
colors = [
    Color.get_LightBlue(),
    Color.get_MediumPurple(),
    Color.get_LightPink(),
    Color.get_RosyBrown(),
    Color.get_DarkOrange(),
    Color.get_DarkGray()
]

# 循環(huán)應(yīng)用顏色
for i in range(len(chart.Series[0].Values)):
    cdp = ChartDataPoint(chart.Series[0])
    cdp.Index = i
    chart.Series[0].DataPoints.Add(cdp)
    chart.Series[0].DataPoints[i].Fill.FillType = FillFormatType.Solid
    chart.Series[0].DataPoints[i].Fill.SolidColor.Color = colors[i % len(colors)]

這種方法適用于數(shù)據(jù)點(diǎn)數(shù)量不確定的場(chǎng)景,確保每個(gè)數(shù)據(jù)點(diǎn)都有合適的顏色。

標(biāo)簽位置調(diào)整

數(shù)據(jù)標(biāo)簽的位置可以通過 DataLabels 屬性進(jìn)一步定制:

# 設(shè)置標(biāo)簽顯示位置
chart.Series[0].DataLabels.Position = LabelPositionType.OutsideEnd

# 僅顯示百分比
chart.Series[0].DataLabels.LabelValueVisible = False
chart.Series[0].DataLabels.PercentValueVisible = True

# 自定義標(biāo)簽格式
chart.Series[0].DataLabels.NumberFormat = "0.0%"

LabelPositionType 枚舉提供了多種位置選項(xiàng),如 OutsideEnd(外部末端)、InsideEnd(內(nèi)部末端)、Center(居中)等,可根據(jù)圖表布局選擇最合適的位置。

圖表背景設(shè)置

為提升視覺效果,可以為幻燈片添加背景:

# 設(shè)置背景圖片
image_file = "background.png"
bg_rect = RectangleF.FromLTRB(0, 0, presentation.SlideSize.Size.Width, 
                               presentation.SlideSize.Size.Height)
presentation.Slides[0].Shapes.AppendEmbedImageByPath(
    ShapeType.Rectangle, image_file, bg_rect)
presentation.Slides[0].Shapes[0].Line.FillFormat.SolidFillColor.Color = Color.get_FloralWhite()

背景圖片應(yīng)與圖表顏色協(xié)調(diào),避免干擾數(shù)據(jù)閱讀。

實(shí)用建議

選擇合適的圖表類型:餅圖適合展示 5-7 個(gè)類別的比例關(guān)系,類別過多會(huì)降低可讀性。環(huán)形圖在視覺上更現(xiàn)代,且中心區(qū)域可用于放置總計(jì)數(shù)字或說明文字。

顏色搭配原則:使用對(duì)比明顯的顏色區(qū)分不同數(shù)據(jù)點(diǎn),避免使用過于相近的色調(diào)??紤]色盲用戶的可訪問性,可借助在線工具驗(yàn)證配色方案。

標(biāo)簽清晰度:同時(shí)顯示數(shù)值和百分比能提供完整信息,但如果空間有限,可只顯示百分比并在圖例中注明總數(shù)。

數(shù)據(jù)排序:將數(shù)據(jù)按降序排列,從最大份額開始順時(shí)針展示,符合閱讀習(xí)慣,便于快速識(shí)別主要貢獻(xiàn)者。

總結(jié)

通過 Spire.Presentation for Python,可以在 PowerPoint 中靈活創(chuàng)建和定制餅圖與環(huán)形圖。核心 API 包括 AppendChartInit 用于添加圖表、ChartData 用于數(shù)據(jù)綁定、DataPoints 用于顏色定制,以及 DataLabels 用于標(biāo)簽控制。

這些技術(shù)可應(yīng)用于銷售分析、市場(chǎng)調(diào)研、預(yù)算分配等多種業(yè)務(wù)場(chǎng)景,幫助將復(fù)雜數(shù)據(jù)轉(zhuǎn)化為直觀的視覺呈現(xiàn)。結(jié)合動(dòng)態(tài)數(shù)據(jù)源,還能實(shí)現(xiàn)自動(dòng)化報(bào)告生成,大幅提升工作效率。

到此這篇關(guān)于Python代碼上線在PowerPoint中生成并自定義餅圖與環(huán)形圖的文章就介紹到這了,更多相關(guān)Python PowerPoint自定義餅圖與環(huán)形圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 列表排序詳解

    Python 列表排序詳解

    這篇文章主要介紹了Python中對(duì)列表排序?qū)嵗?本文給出了9個(gè)List的排序?qū)嵗?需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • 如何利用pandas將Excel轉(zhuǎn)為html格式

    如何利用pandas將Excel轉(zhuǎn)為html格式

    工作中經(jīng)常會(huì)遇到Excel轉(zhuǎn)為html格式這種需求,下面這篇文章主要給大家介紹了關(guān)于如何利用pandas將Excel轉(zhuǎn)為html格式的相關(guān)資料,主要利用的是pd.to_html,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Python元組之不可變序列的奧秘與應(yīng)用方式

    Python元組之不可變序列的奧秘與應(yīng)用方式

    這篇文章主要介紹了Python元組之不可變序列的奧秘與應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python實(shí)現(xiàn)查找最小的k個(gè)數(shù)示例【兩種解法】

    Python實(shí)現(xiàn)查找最小的k個(gè)數(shù)示例【兩種解法】

    這篇文章主要介紹了Python實(shí)現(xiàn)查找最小的k個(gè)數(shù),結(jié)合實(shí)例形式對(duì)比分析了Python常見的兩種列表排序、查找相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • python如何調(diào)用百度識(shí)圖api

    python如何調(diào)用百度識(shí)圖api

    這篇文章主要介紹了python如何調(diào)用百度識(shí)圖api,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python程序運(yùn)行進(jìn)程、使用時(shí)間、剩余時(shí)間顯示功能的實(shí)現(xiàn)代碼

    python程序運(yùn)行進(jìn)程、使用時(shí)間、剩余時(shí)間顯示功能的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python程序運(yùn)行進(jìn)程、使用時(shí)間、剩余時(shí)間顯示功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-07-07
  • 關(guān)于Python中字典dict的存儲(chǔ)原理詳解

    關(guān)于Python中字典dict的存儲(chǔ)原理詳解

    Python字典是另一種可變?nèi)萜髂P?可存儲(chǔ)任意類型對(duì)象。如字符串、數(shù)字、元組等其他容器模型,因?yàn)樽值涫菬o序的所以不支持索引和切片,需要的朋友可以參考下
    2023-05-05
  • python面向?qū)ο骭詳談?lì)惖睦^承與方法的重載

    python面向?qū)ο骭詳談?lì)惖睦^承與方法的重載

    下面小編就為大家?guī)硪黄猵ython面向?qū)ο骭詳談?lì)惖睦^承與方法的重載。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • python實(shí)現(xiàn)Adapter模式實(shí)例代碼

    python實(shí)現(xiàn)Adapter模式實(shí)例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)Adapter模式實(shí)例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • PyTorch中clone()、detach()及相關(guān)擴(kuò)展詳解

    PyTorch中clone()、detach()及相關(guān)擴(kuò)展詳解

    這篇文章主要給大家介紹了關(guān)于PyTorch中clone()、detach()及相關(guān)擴(kuò)展的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論

伊宁市| 阳泉市| 曲松县| 濮阳市| 沂水县| 东乌珠穆沁旗| 石嘴山市| 突泉县| 馆陶县| 麻江县| 新蔡县| 乌什县| 海丰县| 潼关县| 连州市| 连南| 金阳县| 通化县| 始兴县| 凌源市| 长葛市| 西乡县| 海安县| 茌平县| 湘潭市| 商南县| 景宁| 铅山县| 桃园县| 长治市| 曲阳县| 南宫市| 中西区| 卢湾区| 东乌珠穆沁旗| 靖边县| 兴仁县| 高州市| 沁源县| 沧源| 潼关县|