Помещение текста в сюжет в matplotlib - PullRequest
3 голосов
/ 26 марта 2020

Я делаю многострочные сюжеты. На каждом шаге я добавляю еще одну строку к предыдущему сюжету. Они выглядят так:

enter image description here

Теперь я хочу удалить легенду и добавить названия стран над линиями, например Китай над синей линией. Как добавить текст по строкам?

Мой код для создания этих нескольких графиков:

for i in years:
    yearsi=list((range(1960,i+1)))
    yearsi=map(str,yearsi)
    ax=df.pivot_table(values=yearsi, columns='Country Name').plot()
    ax.set_ylim([0, 1500])
    ax.set_xticks(range(0,61,10))
    ax.set_xticklabels(range(1960, 2021,10))

Где датафрейм похож на это

enter image description here

1 Ответ

3 голосов
/ 26 марта 2020

Я только что быстро проверил это, и вы сможете достичь того, что ищете, используя Text, если вы правильно укажете свои координаты.

Создайте новый текстовый экземпляр:

self.look_at_me = self.ax2.text(0, 0, 'Look at me!', size=12, color='g')

Вышесказанное - это все, что вам нужно для вашего примера! 0, 0 - это координаты x, y для текста.

Теперь у меня есть функция, которая оживляя сюжет, у вас может не быть этого. В любом случае, просто для чего-то дополнительного вы можете обновить положение текста до новых координат x и y на основе данных. то есть

def animate(i):
    self.look_at_me.set_position((self.df['t'][i], self.df['r_mag'][i]))

Это дает следующий результат, и он должен работать с таким количеством текстовых меток, сколько вам нужно с соответствующими данными.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...