私は、異なるPandas Dataframesから3つのラインをmatplotlibの同じサブプロットにプロットしようとしています。しかし、私がこれをしたとき、プロットの1つがx軸に沿ってシフトしていることがわかりました(xrangeは各行ごとに異なります)。しかし、個々の行を個別にプロットすると、xlimitは正確であり、どれもシフトされません。私はここで私の問題を再現しようとしました:Matplotlibが誤ってx軸に沿ってラインプロットを移動する
def plot_dH1(title1, title_sim, a, b, c):
fig = plt.figure(figsize=(4,4))
plt.style.use(‘ggplot’)
sns.set_style(‘ticks’)
plt.rcParams[‘font.size’] = 15
n = 0
for i in range(len(a)):
ax = fig.add_subplot(1,1,n+1)
ax = a[i].groupby(level=(0, 1)).mean()[0].plot(label=‘$\chi_{180}$‘)
ax = b[i].groupby(level=(0, 1)).mean()[0].plot(label=‘All’)
ax = c[i].groupby(level=(0, 1)).mean()[0].plot(label=‘$\chi_{90}$‘)
ax.set_ylabel(‘$dH$‘)
ax.set_xlabel(‘$\lambda_{0}$, $\lambda_{1}$‘)
ax.set_title(title_sim[i])
title = title_sim[i]
sns.despine(offset=10, ax=ax)
plt.xticks(rotation=90)
# plt.yticks(range(0,350,20),range(0,350,20))
n = n+1
lgd = ax.legend(loc=‘upper center’, bbox_to_anchor=(0.35, -0.8),fancybox=True, shadow=True, ncol=3)
# plt.tight_layout()
# fig.savefig(‘{}.pdf’.format(‘dHdl_all’))
fig.savefig(‘{}.pdf’.format(‘dHdl_all’),bbox_extra_artists=(lgd,), bbox_inches=‘tight’)
array = [range(10), range(10,20)]
tuples = list(zip(*array))
index = pd.MultiIndex.from_tuples(tuples)
a = [pd.DataFrame(np.random.randn(10,1), index=index)]
b = [pd.DataFrame(np.random.randn(5,1), index=index[5:])]
c = [pd.DataFrame(np.random.randn(8,1), index=index[2:])]
plot_dH1(title1, title_sim, a, b, c)
a、b、cはPandas Data Frameのリストです。画像をアップロードできません。しかし、それを実行すると、問題が表示されます。線の1つがx軸に沿って移動する理由を知っていますか?