Seaborn 條形圖和堆疊條形圖

Manav Narula 2021年10月2日 2021年4月29日
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 引數對不同類別的觀察進行分組,以便在同一圖形上建立不同的條形。這樣,最終輸出將更加整潔,並且僅使用一個函式即可完成所有操作。

Author: 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