web-dev-qa-db-ja.com

`GridSpec()`を `subplots()`で使用する方法

いくつかの( )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])

言うまでもなく、このコードは機能せず、単なる例です。

24
InsaneBot

subplotsの前にgridspec.GridSpecを呼び出すのではなく、kwargs呼び出し内からgridspec_kw引数を使用してGridSpecsubplotsに送信できます。 docs から:

gridspec_kw:dict

サブプロットが配置されるグリッドを作成するために使用されるGridSpecコンストラクターに渡されるキーワードを使用した辞書。

したがって、たとえば:

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

41
tmdavison