Если вы делаете то, что я думаю, что вы хотите, то значения на оси у кажутся бессмысленными, и вы просто хотите сохранить общее соотношение между значениями?
Если это так, то Вы можете нормализовать каждый столбец так, чтобы значения содержались в определенном интервале (здесь [–0.5, 0.5]
), а затем построить график смещения каждого столбца с помощью возрастающего индекса.
fig, ax = plt.subplots()
for i,col in enumerate(df):
#normalize the data so that all the data is contained in the interval [-0.5, 0.5]
norm = (df[col]-df[col].min())/(df[col].max()-df[col].min()) - 0.5
ax.plot(df.index,i+norm)
ax.set_yticks(range(df.columns.size))
ax.set_yticklabels(df.columns)
Если вы хотите сохранить значения y, то другой вариант - создать стек вспомогательных участков:
fig, axs = plt.subplots(df.columns.size, 1, gridspec_kw=dict(hspace=0), sharex=True)
for col,ax in zip(df,axs):
ax.plot(df.index, df[col])
ax.set_ylabel(col, rotation=0, ha='right', va='center')
fig.tight_layout()