Given the following:
import matplotlib.pyplot as plt
import numpy as np
#http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
x = np.random.randn(60)
y = np.random.randn(60)
x2 = np.random.randn(60)
y2 = np.random.randn(60)
plt.plot(x, y, marker='o', markeredgecolor='r', linestyle='none', markerfacecolor='none')
plt.plot(x2, y2, marker='o', markeredgecolor='r', linestyle='none', markerfacecolor='none')
plt.show()
I'd like for x2 and y2 to be plotted as dashed (or even dotted) circles. I am avoiding the use of plt.scatter because the rest of my script works with plt.plot much better.
Here's what I'm looking for:

Thanks in advance!
FYI: Here's the actual chart I created. I just used hexagons for now to signify the different data (future data).
The custom legend and plotting over groups of rows in a pandas Data Frame add layers of complexity that I couldn't overcome with plt.scatter.

Pathinstance as marker. I did not find a way to make a dashed circle. Maybe it is not possible,scatteruses additional properties ofPathCollectionfor the marker edges. I would say that if you want to plot so many circles that performance is an issue then dashed edges are not the best way to tell some of them apart. Color, sizes or shapes will work much better.