np.random.seed(0)
n = 2000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
cmap = colors.ListedColormap(['white', 'yellow', 'orange'])
hb = plt.hexbin(x, y, bins='log', cmap=cmap, gridsize=20, edgecolor='gray')
plt.axis([-2, 2, -12, 12])
plt.title('sunflower plot')
counts = hb.get_array()
coords = hb.get_offsets()
for i, count in enumerate(counts):
    x, y = coords[(i), :]
count = int(10 ** count)
if count > 3 and count <= 12:
    n = count // 1
if n > 1:
    plt.plot([x], [y], 'k.')
plt.plot([x], [y], marker=(n, 2), color='k', markersize=18)
if count > 12:
    n = count // 5
if n > 1:
    plt.plot([x], [y], 'k.')
plt.plot([x], [y], marker=(n, 2), color='k', markersize=18)
plt.show()
sunflower scatter plot using matplotlib