Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matplotlib connect scatterplot points with line - Python

People also ask

How do you connect lines in a scatter plot in Matplotlib?

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.

How do you join two points in Python?

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