python matplotlib: как контролировать положение яксиса - PullRequest
0 голосов
/ 29 февраля 2020

Я создаю набор диаграмм, которые позже буду использовать в reportlab для создания PDF-файла, и на каждой странице будут выровнены несколько диаграмм. Я хочу, чтобы PDF-файл со всеми осями Y диаграмм был выровнен по вертикали, и для этого необходимо, чтобы ось Y находилась в одинаковом положении на всех диаграммах. Диаграммы имеют разные шкалы на оси Yaxis, поэтому положение оси Y варьируется среди диаграмм из-за разных Y-меток. Как я могу это исправить? Как я могу указать положение оси Y? Я пробовал с плотной компоновкой, subplots_adjust и add_axes, но все они контролируют заполнение или положение фигуры или осей, а не положение оси Y.

y-axis missaligned charts

Вот исходный код, считывающий данные из pandas:

`для i в диапазоне (0, len (df_country), 1):

CountryISO  = df_country.iloc[i,1]
CountryName = df_country.iloc[i,2]
df_1 = df_data[(df_data.TYPE == 'POP') & (df_data.ISO == CountryISO)]
plt.scatter(df_1.YEAR, df_1.DATA , color = 'm', s = 3.0)
plt.title(CountryName + '; Population vs Time', loc = 'right')
plt.xlabel('year')
plt.ylabel('population, million')
plt.grid(True)
plt.xlim(1950, 2020)

plt.tight_layout() # this I added later, but still does not work

fig = plt.gcf()
fig.savefig(RootDir + CountryISO + '_POP vs TIME.png', dpi = 600)`

Я полагаю, это довольно просто и не позволяет выровнять ось Y, как показано на снимке выше.

...