Как показать yticks на графике / графике (не по оси y). Показывать yticks рядом с точками

#python #matplotlib #linechart

#python #matplotlib #линейная диаграмма

Вопрос:

У меня есть график с простой линией. На данный момент я установил yticks как невидимый. введите описание изображения здесь

Вот код для графика:

 import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 1.5, 2, 2.5, 3]

fig, ax = plt.subplots(figsize=(15,10))
plt.plot(x, y, 'ko-')

plt.xlabel('X', fontsize=15)
plt.ylabel('Y', fontsize=15)
plt.xticks(x, fontsize=13)
plt.yticks(y, visible=False)

plt.margins(0.1, 0.1)
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid()
plt.show()
  

Мне нужно показать / распечатать yticks прямо на самом графике (не на левой стороне). Итак, yticks находятся рядом с точками данных.

Желаемый результат:
введите описание изображения здесь


Как это сделать с помощью Matplotlib?

Ответ №1:

Вы можете использовать plt.text() для аннотирования текста на оси. Повторяя ваши точки x, y, вы можете поместить метку на каждый маркер. Например:

 import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 1.5, 2, 2.5, 3]

fig, ax = plt.subplots(figsize=(15,10))
plt.plot(x, y, 'ko-')

plt.xlabel('X', fontsize=15)
plt.ylabel('Y', fontsize=15)
plt.xticks(x, fontsize=13)
plt.yticks(y, visible=False)

offset = 0.05
for xp, yp in zip(x,y):
    label = "%s" % yp
    plt.text(xp-offset, yp offset, label, fontsize=12, horizontalalignment='right')

plt.margins(0.1, 0.1)
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid()
plt.show()
  

Дает следующий рисунок:

введите описание изображения здесь