def rand_data():
    return np.random.uniform(low=0.0, high=1.0, size=(100,))
x1, y1 = [rand_data() for i in range(2)]
x2, y2 = [rand_data() for i in range(2)]
plt.figure()
plt.plot(x1, y1, 'o', label='first', markersize=np.sqrt(20.0), c='b')
plt.plot(x2, y2, 'o', label='second', markersize=np.sqrt(35.0), c='r')
lgnd = plt.legend(loc='lower left', numpoints=1, fontsize=10)
lgnd.legendHandles[0]._legmarker.set_markersize(6)
lgnd.legendHandles[1]._legmarker.set_markersize(6)
plt.show()
Setting a fixed size for points in legend