Seaborn 條形圖和堆疊條形圖
Manav Narula
2021年10月2日
條形圖用於以矩形條表示觀測值。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 中建立堆疊的條形圖。
當我們談論堆疊的條形圖時,我們的意思是在同一張圖中表示兩組或更多組觀察值。這使整個圖形具有堆疊的外觀,並且在第二組上放置了一組觀察值。
我們沒有可以直接建立這種堆疊條形圖的函式,但是我們可以使用傳統的 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")
在上圖中,我們在條形圖上繪製了兩種商品在不同日期的價格。
如果需要,我們可以在同一條形圖上表示一組分類值的觀察值。最終結果將不是堆疊外觀,而是代表同一條圖上多個條上的觀測值。
請參考以下程式碼。
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")
我們能夠在同一張圖上繪製 4 個不同日期的 2 種產品的價格。我們給 x 和 y 軸提供條形圖的期望值,並使用 hue
引數對不同類別的觀察進行分組,以便在同一圖形上建立不同的條形。這樣,最終輸出將更加整潔,並且僅使用一個函式即可完成所有操作。
作者: Manav Narula
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