Reputation: 30737
Matplotlib connect scatterplot points with line - Python
Checked this out and their solution was very simple, use plt.plot(x_coordinates, y_coordinates, '-o') but I have a list of colors that i'm using so I can't use this method. They are RGB colors. (Also not sure why colors are alternating within the same series)
How can I connect these points with lines that are the same color as the markers?
import matplotlib.pyplot as plt
import random
x_coordinates = [(range(1,4))]*2
y_coordinates = [[3,4,5],[2,2,2]]
color_map = []
for i in range(0,len(x_coordinates)):
r = lambda: random.randint(0,255)
rgb_hex = ('#%02X%02X%02X' % (r(),r(),r()))
color_map.append(rgb_hex)
plt.scatter(x_coordinates,y_coordinates,c=color_map)
plt.show()
Upvotes: 0
Views: 1782
Reputation: 69242
You can plot the line behind the scatter plot, and set the zorder
to ensure that the line is behind the points.
import matplotlib.pyplot as plt
import random
x_coordinates = [(range(1,65))]*2
y_coordinates = [[random.randint(0,10) for i in range(0,64)]*2]
color_map = []
for i in range(0,len(x_coordinates)):
r = lambda: random.randint(0,255)
rgb_hex = ('#%02X%02X%02X' % (r(),r(),r()))
color_map.append(rgb_hex)
plt.plot(x_coordinates[0],y_coordinates[0][:len(x_coordinates[0])],'-',
zorder=2, , color=(.7,)*3)
plt.scatter(x_coordinates,y_coordinates,c=color_map, s=60, zorder=3)
plt.show()
Upvotes: 1