Seaborn 條形圖和堆疊條形圖

Manav Narula 2021年10月2日
Seaborn 條形圖和堆疊條形圖

條形圖用於以矩形條表示觀測值。Python 中的 seaborn 模組使用 seaborn.barplot() 函式建立條形圖。

請參考下面的程式碼,為商品在不同日期的價格建立一個簡單的條形圖。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Price 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day": [1, 2, 3, 4, 5, 6, 7, 8]}
)

s1 = sns.barplot(x="Day", y="Price 1", data=df, color="red")

Seaborn 堆疊式條形圖 1

在本教程中,我們將學習如何在 Seaborn 中建立堆疊的條形圖。

當我們談論堆疊的條形圖時,我們的意思是在同一張圖中表示兩組或更多組觀察值。這使整個圖形具有堆疊的外觀,並且在第二組上放置了一組觀察值。

我們沒有可以直接建立這種堆疊條形圖的函式,但是我們可以使用傳統的 seaborn.barplot() 方法繪製兩個單獨的條形圖,並將它們放置在彼此的頂部。

我們在以下程式碼中實現此邏輯。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Price 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Price 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)

s1 = sns.barplot(x="Day", y="Price 1", data=df, color="red")

s2 = sns.barplot(x="Day", y="Price 2", data=df, color="blue")

Seaborn 堆疊式條形圖 2

在上圖中,我們在條形圖上繪製了兩種商品在不同日期的價格。

如果需要,我們可以在同一條形圖上表示一組分類值的觀察值。最終結果將不是堆疊外觀,而是代表同一條圖上多個條上的觀測值。

請參考以下程式碼。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Price": [7, 1, 5, 6, 3, 10, 5, 8],
        "Product": ["C1", "C2", "C1", "C2", "C1", "C2", "C1", "C2"],
        "Day": [1, 1, 2, 2, 3, 3, 4, 4],
    }
)

s = sns.barplot(x="Day", y="Price", data=df, hue="Product")

Seaborn 堆疊式條形圖 3

我們能夠在同一張圖上繪製 4 個不同日期的 2 種產品的價格。我們給 x 和 y 軸提供條形圖的期望值,並使用 hue 引數對不同類別的觀察進行分組,以便在同一圖形上建立不同的條形。這樣,最終輸出將更加整潔,並且僅使用一個函式即可完成所有操作。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn