Seaborn Set_xticklabels 函式
Manav Narula
2021年7月16日
本文將介紹如何控制兩個軸上的刻度標籤。
例如,請注意下圖的問題。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
在上圖中,整個日期繪製在 x 軸上。但一切都是重疊的,難以閱讀。
我們可以使用 set_xticklabels()
函式為 x 軸設定自定義刻度標籤。seaborn 圖返回一個 matplotlib 軸例項型別物件。我們可以在這個物件上使用這個函式。
例如,我們可以在上面提到的問題中將標籤作為月份名稱傳遞,如下所示。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"])
我們還可以對最終結果進行細微的定製。我們可以使用 rotation
引數將最終刻度標籤旋轉一定程度或使用 size
引數更改其字型大小。
如果我們想在預設刻度標籤上使用這些引數,我們可以使用 get_xticklabels()
函式。它從圖中返回預設刻度標籤的列表。當我們想要使用 rotation
或 size
引數自定義預設刻度標籤時,我們可以使用此函式。
檢查以下程式碼以瞭解如何使用此功能。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Date": [
"01012019",
"01022019",
"01032019",
"01042019",
"01052019",
"01062019",
"01072019",
"01082019",
],
"Price": [77, 76, 68, 70, 78, 79, 74, 75],
}
)
df["Date"] = pd.to_datetime(df["Date"], format="%d%m%Y")
plt.figure(figsize=(15, 8))
ax = sns.barplot(x="Date", y="Price", data=df)
ax.set_xticklabels(ax.get_xticklabels(), rotation=30, size=10)
同樣,我們可以使用 set_yticklabels()
和 get_yticklabels()
函式在 y 軸上執行函式。
作者: 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