Постройте небольшое изображение под диаграммой рассеяния с целым числом, обозначающим цвет плитки. Затем вы можете использовать pcolor для построения изображения, с помощью edgecolors для определения границ. Код ниже делает это, при этом цвет ячейки определяется как максимальный индекс ячейки i, j, который соответствует вашей сетке.
import numpy as np
import matplotlib.pyplot as plt
# define grid
nx, ny = 6, 5
x, y = np.arange(nx), np.arange(ny)
xx, yy = np.meshgrid(x, y)
z = np.maximum(xx, yy)
# create random points
npoints = 30
data_x = 10**(np.random.rand(npoints)*nx)
data_y = 10**(np.random.rand(npoints)*ny-1)
# plot grid then points
plt.pcolor(10.**x, 10.**(y-1), z, edgecolors='k')
plt.loglog(data_x, data_y, '.w')
plt.axis([1,10**5,0.1,10**3])
plt.show()
Обратите внимание, что вы также можете использовать zorder = n, чтобы заставить график рассеяния над изображением.
Пожалуйста, разместите код, который создает исходный участок. – fjarri