亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python繪制瀑布圖

發布時間:2023-04-20 09:18:01 來源:億速云 閱讀:75 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么使用Python繪制瀑布圖”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么使用Python繪制瀑布圖”文章能幫助大家解決問題。

前期準備

首先先安裝所需的庫:

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

接著導入要搭配使用的Pandas庫和Matplotlib庫:

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

準備一些模擬數據,用于后續不同的Python庫繪制瀑布圖。

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庫,它是基于 Matplotlib 來創建靈活的瀑布圖。

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="人生苦短,快學Python!")

需要注意一點,waterfall_ax這個庫使用的是 Python 列表,所以在上面代碼中我們將Pandas的"users"列通過to_list轉為了列表。

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

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="人生苦短,快學Python!")

方法二:waterfall_chart

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

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

在交互式環境中輸入如下命令,

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

運行輸出:

waterfall_chart庫同樣也可以增加其他參數,本文不再做單獨展示。

方法三:plotly

前面的兩種方法相對來說比較小眾一點,那么方法三用到的plotly庫大家一定都比較熟悉。與waterfall_chart庫一樣,在繪制之前也需要多一步進行數據處理。

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

在交互式環境中輸入如下命令:

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="人生苦短,快學Python!",
    showlegend=False
)

fig.show()

使用plotly庫有一個非常大的優勢,這些圖是完全交互的,我們可以放大,也可以通過選項來獲取更多信息,如下圖所示。

怎么使用Python繪制瀑布圖

另外,與之前兩種方法繪制的圖相比,剛剛plotly庫繪制的圖少了一個“柱子”顯示凈/總計。可以這樣處理:

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代碼實際上并未改變,唯一的區別是我們使用的DataFrame增加一個額外行。

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="人生苦短,快學Python!",
    showlegend=False
)

fig.show()

關于“怎么使用Python繪制瀑布圖”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广水市| 新和县| 祁门县| 岳池县| 沙坪坝区| 台江县| 同仁县| 开江县| 南郑县| 胶州市| 庆安县| 西乌| 察雅县| 临澧县| 万荣县| 岚皋县| 郎溪县| 靖边县| 乌拉特中旗| 通辽市| 仁化县| 泾川县| 德兴市| 蒙山县| 黄平县| 仲巴县| 乌什县| 奇台县| 宜兰县| 斗六市| 革吉县| 沙坪坝区| 镇安县| 蓬溪县| 周宁县| 阳新县| 巢湖市| 尚志市| 黄大仙区| 定安县| 西青区|