Как провести линию между точкой данных и осью в matplotlib?

#python #matplotlib

Вопрос:

Используя matplotlib, можно использовать:

  • plt.hlines/vlines для рисования сегментов (например, между двумя точками данных)
  • plt.axhline/axvline для рисования линий относительно осей

Мой вопрос: каков самый простой способ сделать половину каждого из них? Как правило, рисование сегмента от точки данных до его координаты на оси x или y.

Ответ №1:

На мой взгляд, это достаточно просто (4 строки):

 fig, ax = plt.subplots()
x = np.arange(10)
y = np.arange(10)
ax.plot(x, y)
# starting from here
ymin, ymax = ax.get_ylim()
for i in range(len(x)):
    ax.vlines(x[i], ymin, y[i])
ax.set_ylim(ymin, ymax)
 

Выход:

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