子图中的Pandas条形图和标签

时间:2018-06-19 20:35:27

标签: pandas axis-labels subplot axes

df=pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
x=[1,2,3,4,5]
y=[1,4,9,16,25]

fig, axes = plt.subplots(figsize=(8,8),nrows=2, ncols=2)
ax1=plt.subplot(2,2,1)
plt.plot(x,y)

#ax2=plt.subplot(2,2,2)
df["b"].plot(ax=axes[0,1], kind='bar', grid=True)
df["c"].plot(ax=axes[1,0], kind='bar', grid=True)
df["d"].plot(ax=axes[1,1], kind='bar', grid=True)

ax1.grid(True)
ax1.set_ylabel('Test')
ax1.set_xlabel('Test2')

#ax2.set_ylabel('Test')

如何在子图中为条形图添加轴标签?请注意,我在测试时已注释掉ax2 = plt.subplot(2,2,2),但这会完全消除条形图并添加标签。为什么这样做,我该如何解决?下面是ax2 ...未注释的输出。

Plot with the lines un-commented

1 个答案:

答案 0 :(得分:2)

据我了解,您不需要ax1ax2。您最好使用轴网格:

fig, axes = plt.subplots(figsize=(8,8),nrows=2, ncols=2)
axes[0,0].plot(x,y)
df["b"].plot(ax=axes[0,1], kind='bar', grid=True)
df["c"].plot(ax=axes[1,0], kind='bar', grid=True)
df["d"].plot(ax=axes[1,1], kind='bar', grid=True)
axes[0,0].grid(True)
axes[0,0].set_ylabel('Test')
axes[0,0].set_xlabel('Test2')
axes[0,1].set_ylabel('Test')

输出:

enter image description here