posy = np.digitize(ydat, locy)
ind = (posx > 0) & (posx <= bins[0]) & (posy > 0) & (posy <= bins[1])
hhsub = hh[posx[ind] - 1, posy[ind] - 1]
xdat1 = xdat[ind][hhsub < thresh]
ydat1 = ydat[ind][hhsub < thresh]
hh[hh < thresh] = np.nan
plt.imshow(np.flipud(hh.T), cmap='jet', extent=np.array(xyrange).flatten(),
    interpolation='none', origin='upper')
plt.colorbar()
plt.plot(xdat1, ydat1, '.', color='darkblue')
plt.show()
Эффективно создавайте график плотности для регионов с высокой плотностью, точки для разреженных регионов