使用 Seaborn 建立不同的調色盤
本文將探討 Seaborn 調色盤的不同選項。我們還將向你展示如何在 Seaborn 中建立自定義調色盤。
使用 Seaborn 建立不同的調色盤
讓我們首先匯入 Seaborn 並將其儲存為 seaborn
。我們還將從名為 tips
的 Seaborn 庫中載入一些資料。
import seaborn as seaborn
檢視 customer_bill
資料框的頂部,你會發現每個客戶留下的賬單金額和小費金額都不同。我們也有不同的特點,比如一週中的哪一天或提供那頓飯的時間。
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
現在我們將 set_style
設定為 darkgrid
並使用 scatterplot
函式建立散點圖。
在這個 scatterplot
函式中,我們將 total_bill
傳遞給 x 軸,而 y 軸表示 tip
。data
屬性來自 customer_bill
資料框。
我們還可以將另一列,如 day
的分類列傳遞給 hue
屬性。這將在一週中的每一天分成不同的顏色。
import seaborn as seaborn
# collect data from seaborn
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
# set grid style
seaborn.set_style("darkgrid")
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, hue="day")
# uncomment the below code if you are not using jupyter notebook
# import matplotlib.pyplot as plot
# plot.show()
如果你注意到,Seaborn 在散點圖中使用其預設調色盤。我們可以使用 color_palette()
函式檢查預設 Seaborn 的調色盤。
seaborn.color_palette()
這將顯示 Seaborn 用於前四種顏色的預設調色盤。
我們可以在 color_palette()
函式中傳遞幾個選項。如果我們傳遞一個有效的字串名稱,例如 Pastel2
,我們將看到其他調色盤。
seaborn.color_palette("Pastel2")
我們可以使用不同的命名調色盤。我們只需要新增這個 palette
引數並將其設定為等於有效的調色盤名稱。
seaborn.set_style("whitegrid")
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette="Pastel2"
)
目前我們可以在 Seaborn 中使用 170 種不同的命名調色盤。如果你忘記了他們的名字,你不必去找他們;你可以傳遞無效的調色盤名稱,例如:
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette="GH"
)
輸出:
如果你注意到其中很多帶有 _r
。這些是相同的調色盤,但順序相反。
seaborn.color_palette("Pastel2_r")
如果我們不傳遞調色盤引數,那麼 Seaborn 會設定預設的調色盤顏色。
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill)
如果我們想更新這些點的顏色,我們將其稱為 color
。它不是調色盤;它是一種顏色,因為我們在整個圖形中只有一種顏色,但請注意如果我們將這種顏色切換為藍色字串會發生什麼。
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color="blue")
這是 Matplotlib 藍色,而不是 Seaborn 藍色。
假設我們想使用 color_palette()
函式提取 Seaborn 藍色,並選擇前兩種顏色。這給了我們第一個元組,藍色,第二個,橙色。
BLUE, ORANGE = seaborn.color_palette()[:2]
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color=BLUE)
在 Seaborn 中建立自定義調色盤
我們可以在 Seaborn 中基於單一顏色或混合多種顏色建立自定義調色盤。我們甚至可以建立一個突出顯示某個特定類別的調色盤。
我們可以通過多種方式使用 Seaborn 建立自定義調色盤。如果我們需要這個調色盤中的其他顏色,我們可以傳遞一個整數。
seaborn.color_palette("Pastel2", 10)
我們還可以通過訪問 light_palette()
函式來建立我們的調色盤,該方法接受一種命名顏色。此調色盤包含一種顏色的不同深淺。
seaborn.light_palette("gray")
Seaborn 有一個建立深色調色盤的 dark_palette()
函式。顏色從較暗的陰影開始,然後上升到指定的顏色。
seaborn.dark_palette("red")
Seaborn 還允許我們使用這個 blend_palette()
函式建立不同的調色盤,引數將是一個顏色列表。這將建立一個調色盤,混合我們在列表中傳遞的所有顏色。
seaborn.blend_palette(["blue", "red", "green"], 12)
讓我們將 blend_palette()
傳遞給調色盤引數。執行此操作時可能會出現錯誤,因為 blend_palette()
的預設顏色數為六,但我們的 day 列中只有四個不同的類別。
seaborn.scatterplot(
x="total_bill",
y="tip",
data=customer_bill,
hue="day",
palette=seaborn.blend_palette(["green", "red"]),
)
輸出:
我們需要傳遞一個整數,因為我們的 day
列類別存在。
seaborn.scatterplot(
x="total_bill",
y="tip",
data=customer_bill,
hue="day",
palette=seaborn.blend_palette(["green", "red"], 4),
)
Seaborn 為我們提供了使用突出顯示調色盤的選項,只要我們想強調一個或兩個類別,就會使用它。我們將為每個獨特的日子建立一個調色盤字典。
P_DICT = {k: "gray" for k in customer_bill.day.unique()}
P_DICT
那天的名字將是這個字典的關鍵。
如果我們想在圖中突出顯示星期五,我們可以為我們感興趣的任何類別分配一個新值 red
。
P_DICT["Fri"] = "red"
seaborn.scatterplot(
x="total_bill", y="tip", data=customer_bill, hue="day", palette=P_DICT
)
我們可以看到除了星期五之外所有的日子都是灰色的,用紅色著色。如果我們想突出某一天,這可能很有用。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn