在我的网格布局中绘制到许多坐标系而不是使用 seaborn 和 matplotlib 绘制
Plotting to many coordinate systems in my grid-layout then plotting with seaborn and mathplotlib
多剧情排版麻烦
尝试通过使用 mathplotlib 作为网格布局并使用 Seaborn 来绘制 3 个并排的图形。问题是我得到了很多地块,3 个完美一次 + 3 个空坐标系。
我试过的
问题来自将 seaborn plot-lib 与 matplotlib 混合使用。
- 测试:是代码示例和图片看到的"My result"
- 测试:如果从 seaborn 图中删除 "ax=axarr[x]",则结果会切换,因此前三张图是空的,最后三张是填充的,正如预期的那样。
fig, axarr = plt.subplots(1, 3, figsize=(20, 6))
sns.catplot(x='weekday', kind='count', palette="ch:.25", data=df_total, ax=axarr[2])
sns.catplot(x='month', kind='count', palette="ch:.25", data=df_total, ax=axarr[1])
sns.catplot(x='year', kind='count', palette="ch:.25", data=df_total, ax=axarr[0])
我的结果:
我想达到的目标:
使用countplot
而不是catplot
:
n = 365*10
df_total = pd.DataFrame({'date':pd.date_range(start='2009/1/1', periods=n, freq='D'),
'x':np.random.randn(n)})
df_total = df_total.sample(500)
df_total['weekday'] = df_total['date'].dt.weekday
df_total['month'] = df_total['date'].dt.month
df_total['year'] = df_total['date'].dt.year
#fig, axarr = plt.subplots(1, 3, figsize=(20, 6))
#sns.catplot(x='weekday', kind='count', palette="ch:.25", data=df_total, ax=axarr[2])
#sns.catplot(x='month', kind='count', palette="ch:.25", data=df_total, ax=axarr[1])
#sns.catplot(x='year', kind='count', palette="ch:.25", data=df_total, ax=axarr[0])
fig, axarr = plt.subplots(1, 3, figsize=(12, 4))
sns.countplot(x='weekday', palette="ch:.25", data=df_total, ax=axarr[2])
sns.countplot(x='month', palette="ch:.25", data=df_total, ax=axarr[1])
sns.countplot(x='year', palette="ch:.25", data=df_total, ax=axarr[0])
plt.show()
多剧情排版麻烦
尝试通过使用 mathplotlib 作为网格布局并使用 Seaborn 来绘制 3 个并排的图形。问题是我得到了很多地块,3 个完美一次 + 3 个空坐标系。
我试过的
问题来自将 seaborn plot-lib 与 matplotlib 混合使用。
- 测试:是代码示例和图片看到的"My result"
- 测试:如果从 seaborn 图中删除 "ax=axarr[x]",则结果会切换,因此前三张图是空的,最后三张是填充的,正如预期的那样。
fig, axarr = plt.subplots(1, 3, figsize=(20, 6))
sns.catplot(x='weekday', kind='count', palette="ch:.25", data=df_total, ax=axarr[2])
sns.catplot(x='month', kind='count', palette="ch:.25", data=df_total, ax=axarr[1])
sns.catplot(x='year', kind='count', palette="ch:.25", data=df_total, ax=axarr[0])
我的结果:
我想达到的目标:
使用countplot
而不是catplot
:
n = 365*10
df_total = pd.DataFrame({'date':pd.date_range(start='2009/1/1', periods=n, freq='D'),
'x':np.random.randn(n)})
df_total = df_total.sample(500)
df_total['weekday'] = df_total['date'].dt.weekday
df_total['month'] = df_total['date'].dt.month
df_total['year'] = df_total['date'].dt.year
#fig, axarr = plt.subplots(1, 3, figsize=(20, 6))
#sns.catplot(x='weekday', kind='count', palette="ch:.25", data=df_total, ax=axarr[2])
#sns.catplot(x='month', kind='count', palette="ch:.25", data=df_total, ax=axarr[1])
#sns.catplot(x='year', kind='count', palette="ch:.25", data=df_total, ax=axarr[0])
fig, axarr = plt.subplots(1, 3, figsize=(12, 4))
sns.countplot(x='weekday', palette="ch:.25", data=df_total, ax=axarr[2])
sns.countplot(x='month', palette="ch:.25", data=df_total, ax=axarr[1])
sns.countplot(x='year', palette="ch:.25", data=df_total, ax=axarr[0])
plt.show()