我有一个数据框如下所示
df =
index value active
2014-05-21 10:00:00 0.0 1
2014-05-21 11:00:00 3.4 1
2014-05-21 12:00:00 nan 0
2014-05-21 13:00:00 0.0 1
2014-05-21 14:00:00 nan 0
2014-05-21 15:00:00 1.0 1
.....
并按子图
绘制代码和图形如下所示
f, (ax11, ax12)= plt.subplots(2, 1, sharex=True)
ax11.plot(df.index, df.value, c='g')
ax12.scatter(df.index, df.active, s = 5)
ax12.xaxis([-2, -1, 0, 1, 2])
plt.tight_layout()
ax11.grid(True), ax12.grid(True)
plt.show()
我想让 ax11 比 ax12 大两倍,并在同一时间共享x轴。
我已经查看了 subplot2grid , gridspec 的教程,他们都可以给出不同的子图大小,但似乎只有子图可以共享x轴或y轴,如何同时进行?有人有想法吗?提前谢谢!
答案 0 :(得分:1)
您只需要设置gridspec_kw
in your subplots
call;否则,没有什么可以改变的。
gridspec_kw:dict,可选 带有关键字的Dict传递给GridSpec构造函数,用于创建放置子图的网格。
这是一个简单的例子:
fig, (ax1, ax2) = subplots(2, sharex=True, gridspec_kw={'height_ratios': [2, 1]})
ax1.plot([1, 2, 3]);
ax2.plot([3, 2, 4]);