如何将`GridSpec()`与`subplots()`一起使用

时间:2015-12-14 13:53:39

标签: python python-2.7 matplotlib

有几篇(example)SO帖子涉及如何将GridSpec与子图一般使用。 我试图实现无济于事,是允许GridSpecsubplots一起使用,类似这样,我可以用一些循环控制索引替换实际的数组和列表索引:

gs = gridspec.GridSpec(4, 1, height_ratios=[2, 2, 1, 1])        
tPlot, axes = plt.subplots(4, sharex=True, sharey=False)
tPlot.suptitle(node, fontsize=20)
axes[0].plot(targetDay[0], gs[0])
axes[1].plot(targetDay[1], gs[1])
axes[2].scatter(targetDay[2], gs[2])
axes[3].plot(targetDay[3], gs[3])

毋庸置疑,这段代码不起作用,只是一个例子。

1 个答案:

答案 0 :(得分:35)

您可以使用gridspec.GridSpecsubplots来电中kwargs向[{1}}发送GridSpec,而不是在subplots之前致电gridspec_kw。论点。来自docs

  

gridspec_kw:dict

     

使用关键字传递给GridSpec构造函数的Dict,用于创建放置子图的网格。

所以,例如:

import matplotlib.pyplot as plt

tPlot, axes = plt.subplots(
        nrows=4, ncols=1, sharex=True, sharey=False, 
        gridspec_kw={'height_ratios':[2,2,1,1]}
        )

tPlot.suptitle('node', fontsize=20)

axes[0].plot(range(10),'ro-') 
axes[1].plot(range(10),'bo-') 
axes[2].plot(range(10),'go-') 
axes[3].plot(range(10),'mo-') 

plt.show()

enter image description here