我的資料位于兩列的資料框中:y 和 x。這些資料是指過去幾年的資料。虛擬資料如下:
np.random.seed(167)
rng = pd.date_range('2017-04-03', periods=365*3)
df = pd.DataFrame(
{"y": np.cumsum([np.random.uniform(-0.01, 0.01) for _ in range(365*3)]),
"x": np.cumsum([np.random.uniform(-0.01, 0.01) for _ in range(365*3)])
}, index=rng
)
在第一次嘗試中,我使用以下代碼繪制了 Seaborn 的散點圖:
import seaborn as sns
import matplotlib.pyplot as plt
def plot_scatter(data, title, figsize):
fig, ax = plt.subplots(figsize=figsize)
ax.set_title(title)
sns.scatterplot(data=data,
x=data['x'],
y=data['y'])
plot_scatter(data=df, title='dummy title', figsize=(10,7))
但是,我想生成一個 4x3 矩陣,包括 12 個散點圖,每個月一個,以年為色調。我想我可以在我的資料框中創建第三列來告訴我年份,我嘗試了以下方法:
import seaborn as sns
import matplotlib.pyplot as plt
def plot_scatter(data, title, figsize):
fig, ax = plt.subplots(figsize=figsize)
ax.set_title(title)
sns.scatterplot(data=data,
x=data['x'],
y=data['y'],
hue=data.iloc[:, 2])
df['year'] = df.index.year
plot_scatter(data=df, title='dummy title', figsize=(10,7))
雖然這允許我查看年份,但它仍然在同一個散點圖中顯示所有資料,而不是創建多個散點圖,每個月一個,因此它沒有提供我需要的詳細程度。
我可以按月對資料進行切片并構建一個 for 回圈,該回圈每月繪制一個散點圖,但我實際上想要一個矩陣,其中所有散點圖都使用相似的軸刻度。有誰知道實作這一目標的有效方法?
uj5u.com熱心網友回復:
為了一次創建多個子圖,seaborn 引入了
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430602.html
標籤:Python matplotlib 海运 散点图
上一篇:python中statsmodelsQQ圖中的標簽倒置?
下一篇:盡管X和Y形狀相同,但繪圖值錯誤
