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

一文教你如何使用Python繪制瀑布圖

 更新時(shí)間:2023年04月19日 09:12:15   作者:快學(xué)Python  
什么是瀑布圖?瀑布圖用表達(dá)兩個(gè)數(shù)值之間的變化過(guò)程,過(guò)程值為正的時(shí)候,向上加,過(guò)程值為負(fù)的時(shí)候向下減。本文就帶大家學(xué)習(xí)一下如何用Python繪制瀑布圖吧

什么是瀑布圖?瀑布圖用表達(dá)兩個(gè)數(shù)值之間的變化過(guò)程,過(guò)程值為正的時(shí)候,向上加,過(guò)程值為負(fù)的時(shí)候向下減[1]。

今天分享在Python中繪制瀑布圖的3種簡(jiǎn)單方法(使用不同的庫(kù))!

前期準(zhǔn)備

首先先安裝所需的庫(kù):

pip?install?waterfallcharts?(注意該庫(kù)名)
pip?install?waterfall_ax?(注意該庫(kù)名)
pip?install?plotly

接著導(dǎo)入要搭配使用的Pandas庫(kù)和Matplotlib庫(kù):

import?pandas?as?pd
import?matplotlib.pyplot?as?plt
plt.rcParams["figure.figsize"]?=?(16,?8)
plt.rcParams['font.sans-serif']?=?['SimHei']
plt.rcParams['axes.unicode_minus']?=?False

準(zhǔn)備一些模擬數(shù)據(jù),用于后續(xù)不同的Python庫(kù)繪制瀑布圖。

df?=?pd.DataFrame(
????data={
????????"time":?["2021?end",?"Jan",?"Feb",?"Mar",?"Apr",?"May",?"Jun",?"Jul",?"Aug",?"Sep",?"Oct",?"Nov",?"Dec"],
????????"users":?[100,?120,?110,?150,?160,?190,?240,?200,?230,?240,?250,?280,?300]
????}
)

方法一:waterfall_ax

首先我們使用waterfall_ax庫(kù),它是基于 Matplotlib 來(lái)創(chuàng)建靈活的瀑布圖。

https://github.com/microsoft/waterfall_ax

from?waterfall_ax?import?WaterfallChart
fig,?ax?=?plt.subplots(1,?1,?figsize=(16,?8))
waterfall?=?WaterfallChart(df["users"].to_list())
wf_ax?=?waterfall.plot_waterfall(ax=ax,?title="人生苦短,快學(xué)Python!")

需要注意一點(diǎn),waterfall_ax這個(gè)庫(kù)使用的是 Python 列表,所以在上面代碼中我們將Pandas的"users"列通過(guò)to_list轉(zhuǎn)為了列表。

此外,我們還可以增加更多的參數(shù),如下所示:

fig,?ax?=?plt.subplots(1,?1,?figsize=(16,?8))
waterfall?=?WaterfallChart(
????df["users"].to_list(),
????step_names=df["time"].to_list(),?
????metric_name="#?users",?
????last_step_label="now"
)
wf_ax?=?waterfall.plot_waterfall(ax=ax,?title="人生苦短,快學(xué)Python!")

方法二:waterfall_chart

方法二是使用waterfall_chart庫(kù),不過(guò)會(huì)較上一個(gè)方法多一個(gè)步驟,即需要加一個(gè)包含增量的列[2]。如下所示,我們可以向dataframe中添加一個(gè)新列并計(jì)算得到增量diff。

import?waterfall_chart
df_1?=?df.copy()
df_1["delta"]?=?df_1["users"].diff().fillna(100)
df_1

在交互式環(huán)境中輸入如下命令,

waterfall_chart.plot(df_1["time"],?df_1["delta"])

運(yùn)行輸出:

waterfall_chart庫(kù)同樣也可以增加其他參數(shù),本文不再做單獨(dú)展示。

方法三:plotly

前面的兩種方法相對(duì)來(lái)說(shuō)比較小眾一點(diǎn),那么方法三用到的plotly庫(kù)大家一定都比較熟悉。與waterfall_chart庫(kù)一樣,在繪制之前也需要多一步進(jìn)行數(shù)據(jù)處理。

df_2?=?df_1.copy()
df_2["delta_text"]?=?df_2["delta"].astype(str)
df_2["measure"]?=?["absolute"]?+?(["relative"]?*?12)
df_2

在交互式環(huán)境中輸入如下命令:

fig?=?go.Figure(
????go.Waterfall(
????????measure=df_2["measure"],
????????x=df_2["time"],
????????textposition="outside",
????????text=df_2["delta_text"],
????????y=df_2["delta"],
????)
)

fig.update_layout(
????title="人生苦短,快學(xué)Python!",
????showlegend=False
)

fig.show()

使用plotly庫(kù)有一個(gè)非常大的優(yōu)勢(shì),這些圖是完全交互的,我們可以放大,也可以通過(guò)選項(xiàng)來(lái)獲取更多信息,如下圖所示。

另外,與之前兩種方法繪制的圖相比,剛剛plotly庫(kù)繪制的圖少了一個(gè)“柱子”顯示凈/總計(jì)??梢赃@樣處理:

total_row?=?pd.DataFrame(
????data={
????????"time":?"now",?
????????"users":?0,?
????????"delta":0,?
????????"delta_text":?"",?
????????"measure":?"total"
????},?
????index=[0]
)
df_3?=?pd.concat([df_2,?total_row],?ignore_index=True)

用于生成瀑布圖的Python代碼實(shí)際上并未改變,唯一的區(qū)別是我們使用的DataFrame增加一個(gè)額外行。

fig?=?go.Figure(
????go.Waterfall(
????????measure=df_3["measure"],
????????x=df_3["time"],
????????textposition="outside",
????????text=df_3["delta_text"],
????????y=df_3["delta"],
????)
)

fig.update_layout(
????title="人生苦短,快學(xué)Python!",
????showlegend=False
)

fig.show()

運(yùn)行輸出:

如果你對(duì)使用plotly 繪制瀑布圖感興趣,可以訪問(wèn)鏈接https://plotly.com/python/waterfall-charts/了解更多。

以上就是一文教你如何使用Python繪制瀑布圖的詳細(xì)內(nèi)容,更多關(guān)于Python繪制瀑布圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python?動(dòng)態(tài)規(guī)劃問(wèn)題解析(背包問(wèn)題和最長(zhǎng)公共子串)

    python?動(dòng)態(tài)規(guī)劃問(wèn)題解析(背包問(wèn)題和最長(zhǎng)公共子串)

    這篇文章主要介紹了python?動(dòng)態(tài)規(guī)劃(背包問(wèn)題和最長(zhǎng)公共子串),在動(dòng)態(tài)規(guī)劃中,你要將某個(gè)指標(biāo)最大化。在這個(gè)例子中,你要找出兩個(gè)單詞的最長(zhǎng)公共子串。fish和fosh都包含的最長(zhǎng)子串是什么呢,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)

    python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)

    這篇文章主要介紹了python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python?Enum枚舉類的定義及使用場(chǎng)景最佳實(shí)踐

    Python?Enum枚舉類的定義及使用場(chǎng)景最佳實(shí)踐

    枚舉(Enum)是一種有助于提高代碼可讀性和可維護(hù)性的數(shù)據(jù)類型,允許我們?yōu)橐唤M相關(guān)的常量賦予有意義的名字,在Python中,枚舉類(Enum)提供了一種簡(jiǎn)潔而強(qiáng)大的方式來(lái)定義和使用枚舉
    2023-11-11
  • 淺談numpy數(shù)組中冒號(hào)和負(fù)號(hào)的含義

    淺談numpy數(shù)組中冒號(hào)和負(fù)號(hào)的含義

    下面小編就為大家分享一篇淺談numpy數(shù)組中冒號(hào)和負(fù)號(hào)的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python 連續(xù)不等式語(yǔ)法糖實(shí)例

    python 連續(xù)不等式語(yǔ)法糖實(shí)例

    這篇文章主要介紹了python 連續(xù)不等式語(yǔ)法糖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python使用whisper實(shí)現(xiàn)語(yǔ)音識(shí)別(ASR)的示例代碼

    Python使用whisper實(shí)現(xiàn)語(yǔ)音識(shí)別(ASR)的示例代碼

    Whisper是OpenAI的一個(gè)強(qiáng)大的語(yǔ)音識(shí)別庫(kù),支持離線的語(yǔ)音識(shí)別,本文主要介紹了Python使用whisper實(shí)現(xiàn)語(yǔ)音識(shí)別(ASR)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 手把手教你如何安裝Pycharm(詳細(xì)圖文教程)

    手把手教你如何安裝Pycharm(詳細(xì)圖文教程)

    這篇文章主要介紹了手把手教你如何安裝Pycharm(詳細(xì)圖文教程),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python字符串操作

    python字符串操作

    這篇文章主要介紹了python字符串操作,主要包括字符串的分割、字符串的查找,替換、字符串的判斷,下面一起進(jìn)入文章了解具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • python批量替換文件名中的共同字符實(shí)例

    python批量替換文件名中的共同字符實(shí)例

    這篇文章主要介紹了python批量替換文件名中的共同字符實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題

    解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題

    這篇文章主要介紹了解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論

齐齐哈尔市| 金沙县| 桂平市| 漳浦县| 温宿县| 乌什县| 怀宁县| 东兰县| 九寨沟县| 榆中县| 安国市| 二手房| 镇安县| 西吉县| 玉门市| 开平市| 密山市| 乐东| 恩施市| 宣化县| 吴川市| 鄂托克前旗| 泉州市| 鄯善县| 青田县| 定边县| 廉江市| 清原| 酉阳| 临海市| 临高县| 汉沽区| 林口县| 象州县| 凤庆县| 湖北省| 玛曲县| 凌源市| 泰来县| 霍山县| 巢湖市|