私は6つのサブプロットをグラフ化するためにsuplot2gridを使用しています。これらのサブプロットのそれぞれに2つの時系列があります。これらの各サブプロットは、異なるY(垂直)軸に値を表示する必要があります。
私の現在の出力は、ウィッヒが私の目標に近いが、それでも間違っている、このようなものです:今、私は何をすべきか subplot2grid内の2つのプロット
次のとおりです。プロット関数
を定義fig2 = plt.figure(figsize=(14,11))
# defining the axes
ax1_a = plt.subplot2grid((12,2),(0,0), rowspan=3, colspan=1) # drift
ax1_b = plt.subplot2grid((12,2),(4,0), rowspan=3, colspan=1, sharex=ax1_a) # zscore drift
ax1_b = ax1_a.twinx()
ax2_a = plt.subplot2grid((12,2),(4,0), rowspan=3, colspan=1, sharex=ax1_a)
ax2_b = plt.subplot2grid((12,2),(8,0), rowspan=3, colspan=1, sharex=ax1_a)
ax2_b = ax2_a.twinx()
ax3_a = plt.subplot2grid((12,2),(8,0), rowspan=3, colspan=1, sharex=ax1_a)
ax3_b = plt.subplot2grid((12,2),(11,0), rowspan=3, colspan=1, sharex=ax1_a)
ax3_b = ax3_a.twinx()
ax4_a = plt.subplot2grid((12,2),(0,1), rowspan=3, colspan=1)
ax4_b = plt.subplot2grid((12,2),(4,1), rowspan=3, colspan=1, sharex=ax4_a)
ax4_b = ax4_a.twinx()
ax5_a = plt.subplot2grid((12,2),(4,1), rowspan=3, colspan=1, sharex=ax4_a)
ax5_b = plt.subplot2grid((12,2),(8,1), rowspan=3, colspan=1, sharex=ax4_a)
ax5_b = ax5_a.twinx()
ax6_a = plt.subplot2grid((12,2),(8,1), rowspan=3, colspan=1, sharex=ax4_a)
ax6_b = plt.subplot2grid((12,2),(11,1), rowspan=3, colspan=1, sharex=ax4_a)
ax6_b = ax6_a.twinx()
#
def plot_drift(axx,label):
axx.plot(df.index[-lenght:], df[label][-lenght:], linestyle='-', lw=2,
label=label,color='b',alpha=1.00)
def plot_zscore(axx,label):
axx.plot(df.index[-lenght:], df[label][-lenght:], linestyle='-', lw=2,
label=label,color='g',alpha=1.00)
def vertical_labels_drift(axx):
axx.set_ylabel('Vols')
def vertical_labels_Zscore(axx):
axx.set_ylabel('Zscore')
def stdev(axx):
axx.axhline(2,linewidth=2,color='yellow') # standard deviations
axx.axhline(-2,linewidth=2,color='yellow') # standard deviations
axx.axhline(3,linewidth=2,color='red')
axx.axhline(-3,linewidth=2,color='red')
# plotting the drift
for i,j in zip([ax1_a,ax2_a,ax3_a,ax4_a,ax5_a,ax6_a],cols_drift):
plot_drift(i,j)
vertical_labels_drift(i)
# plotting the zscore
for i,j in zip([ax1_b,ax2_b,ax3_b,ax4_b,ax5_b,ax6_b], cols_drift_Z):
plot_zscore(i,j)
stdev(i)
vertical_labels_Zscore(i)
私の質問は、サブプロットの中に入る新しいプロットを定義する正しい方法は何ですか? ax1_a
とax1_b
に同じ場所を配置すると、ax1_b
で上書きされ、ax1_b
だけがチャットされるため、ax1_a
が上書きされます。言い換えれば、あなたはこれを行う場合:
ax1_a = plt.subplot2grid((12,2),(0,0), rowspan=3, colspan=1) # drift
ax1_b = plt.subplot2grid((12,2),(0,0), rowspan=3, colspan=1, sharex=ax1_a) # zscore drift
ax1_b = ax1_a.twinx()
ax1_a
また、表示されている最初のコードに間違った場所が入力されていても、なぜ私のグラフが表示されているのか分かりません。 .twinx()
.twinx()
を実行するときに、ax1_b
、ax2_b
などと異なる場所を配置しても、それがチャートにリセットされるように見えます。それはあなたがaxes.twinx()
の役割を誤解しているように私には思える
は、どのようにあなたが取得している出力が異なるんを適用するために - それはあなたの
fig
UREを与えるものではありませんので、これは私の以前のコードと異なっていることあなたが望むものから? – tjollans@ tjollans答えのために空の副プロット – Gabriel