2 つの y 軸を持つプロットが必要ですが、2 番目のプロットは最初のプロットの半分にする必要があります。
私は2つの異なるプロットが重なっていると考えていましたが、もっと簡単な方法があると思います.
どうもありがとうございました。
2 つの y 軸を持つプロットが必要ですが、2 番目のプロットは最初のプロットの半分にする必要があります。
私は2つの異なるプロットが重なっていると考えていましたが、もっと簡単な方法があると思います.
どうもありがとうございました。
matplotlib ギャラリーを確認する必要があります。たぶん、あなたはこれやこの
ようなものを探しています。
次に、ax2 (右軸) を ax1 (左軸) の半分にする場合は、ax1 の y 制限を取得します。
(min_y, max_y) = ax1.get_ylim()
それに応じて ax2 制限を設定します。例えば:
ax2.set_ylim((min_y, max_y / 2.))
編集:
あなたのコメントの後、私はおそらくあなたのニーズにより適したソリューションに取り組みました. mpl gallery から変更されたコードは次のとおりです。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
t = np.arange(0.01, 10.0, 0.01)
s1 = np.exp(t)
ax1.plot(t, s1, 'b-')
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color='b')
for tl in ax1.get_yticklabels():
tl.set_color('b')
ax2 = ax1.twinx()
s2 = np.sin(2*np.pi*t)
ax2.plot(t, s2, 'r.')
ax2.set_ylabel('sin', color='r')
(min_y, max_y) = ax2.get_ylim()
dist = (max_y - min_y) * 2.
ax2.set_ylim((min_y, max_y + dist))
yticklabels = ax2.get_yticklabels()
yticks = ax2.get_yticklines()
nlabels = len(yticklabels) / 2
nticks = len(yticks) / 2
for i in range(len(yticklabels)):
if i < nlabels:
yticklabels[i].set_color('r')
else:
yticklabels[i].set_visible(False)
for i in range(len(yticks)):
if i < nticks:
yticks[i].set_color('r')
else:
yticks[i].set_visible(False)
plt.show()