Dashed lines from points to axes in matplotlib


I have a set of points which I am plotting like this:

import matplotlib.pyplot as plt`

x = [1,2,3,4,5,6]
y = [1,4,9,16,25,36]

plt.scatter(x, y)

plt.show()

This gives output like this

enter image description here

What I want is to drop perpendiculars from the points to the axes, like in the figure below:

enter image description here

How can this be achieved?


Answers:


Using hlines and vlines you can plot horizontal and vertical lines respectively.

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6]
y = [1,4,9,16,25,36]

plt.vlines(x, 0, y, linestyle="dashed")
plt.hlines(y, 0, x, linestyle="dashed")
plt.scatter(x, y, zorder=2)

plt.xlim(0,None)
plt.ylim(0,None)
plt.show()

enter image description here