Сложности построения двух линий на одном графике - PullRequest
0 голосов
/ 07 ноября 2019

Я столкнулся с проблемой с matplotlib. У меня есть четыре списка данных, некоторые показатели и соответствующие им годы, некоторые значения и соответствующие им годы. Я пытаюсь записать две линии в один график, чтобы левая и правая оси Y имели разные масштабы, но обе линии имеют общую ось X. Другой список лет также немного короче другого.

Итак, это то, что у меня сейчас есть

gdp_years, gdp_rates = get_ordered_values(gdp_url)
un_years, un_rates = get_ordered_values(un_url)

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('Year')
ax1.set_ylabel('GDP', color=color)
ax1.plot(gdp_rates, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()

color = 'tab:blue'
ax2.set_ylabel('UN', color=color)
ax2.plot(un_rates, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()
plt.show()

Это график, который я имею сейчас.

enter image description here

Эти шкалы кажутся нормальными, но ось X неверна. Я пытаюсь получить метки этих годов из списка для представления оси X, но я не могу понять это. Годы должны быть с 1960 до 2018 года, но теперь ось X показывает от 0 до 60. Из-за этого я считаю, что синяя линия также расположена неправильно.

1 Ответ

1 голос
/ 07 ноября 2019

Вы забыли построить x-значения, т.е. соответствующие годы. Вы должны сделать

ax1.plot(gdp_years, gdp_rates, color=color)

ax2.plot(un_years, un_rates, color=color)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...