We can connect scatter plot points with a line by calling show() after we have called both scatter() and plot() , calling plot() with the line and point attributes, and using the keyword zorder to assign the drawing order.
The connections between the different points can be simply calculated using vector addition with: A = [1,2], B=[3,4] --> Connection between A and B is B-A = [2,2].
I think @Evert has the right answer:
plt.scatter(dates,values)
plt.plot(dates, values)
plt.show()
Which is pretty much the same as
plt.plot(dates, values, '-o')
plt.show()
You can replace -o
with another suitable format string as described in the documentation.
You can also split the choices of line and marker styles using the linestyle=
and marker=
keyword arguments.
For red lines an points
plt.plot(dates, values, '.r-')
or for x markers and blue lines
plt.plot(dates, values, 'xb-')
In addition to what provided in the other answers, the keyword "zorder" allows one to decide the order in which different objects are plotted vertically. E.g.:
plt.plot(x,y,zorder=1)
plt.scatter(x,y,zorder=2)
plots the scatter symbols on top of the line, while
plt.plot(x,y,zorder=2)
plt.scatter(x,y,zorder=1)
plots the line over the scatter symbols.
See, e.g., the zorder demo
They keyword argument for this is marker
, and you can set the size of the marker with markersize
. To generate a line with scatter symbols on top:
plt.plot(x, y, marker = '.', markersize = 10)
To plot a filled spot, you can use marker '.'
or 'o'
(the lower case letter oh). For a list of all markers, see:
https://matplotlib.org/stable/api/markers_api.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With