fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
x = [1, 2, 3, 4, 2, 3, 3]
y = [0, 0, 0, 0, 1, 1, 2]
s = 0.0
points = ax.scatter(x, y, s=s, marker='s')
ax.axis([min(x) - 1.0, max(x) + 1.0, min(y) - 1.0, max(y) + 1.0])
xy_pixels = ax.transData.transform(np.vstack([x, y]).T)
xpix, ypix = xy_pixels.T
width, height = fig.canvas.get_width_height()
ypix = height - ypix
s1 = xpix[1] - xpix[0]
points = ax.scatter(x, y, s=s1 ** 2.0, marker='s', edgecolors='none')
ax.axis([min(x) - 1.0, max(x) + 1.0, min(y) - 1.0, max(y) + 1.0])
fig.savefig('test.png', dpi=fig.dpi)
Choosing marker size in Matplotlib