Вы можете рассчитать гистограмму (2D) значений x, y, используя метод numpy histogram2d . Затем вы строите массив, который имеет значение true для всех ненулевых бинов и false для всех нулевых бинов. Вы можете контролировать разрешение гистограммы с помощью параметра bins
. Этот метод возвращает кортеж из 3 массивов: двумерную гистограмму и два одномерных массива, соответствующие шагам ячейки вдоль каждого «ребра» (x, затем y). Вы можете контролировать значения шага, используя параметр range
.
Например:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(101)
x = np.random.normal(0,1,10000)
y = np.random.normal(0,1,10000)
hist,xedge,yedge= np.histogram2d(x,y,bins=100,range=[[-4,4],[-4,4]])
plt.imshow(hist==0,
origin='lower',
cmap=plt.gray(),
extent=[xedge[0],xedge[-1],yedge[0],yedge[-1]])
plt.savefig('hist2d.png')
plt.show()
В результате:
Черные точки показывают, где у вас есть какие-либо данные, белые точки - там, где нет данных. Гистограмма представлена с использованием метода imshow
, который используется для построения изображений или матриц. По умолчанию он устанавливает начало координат слева вверху, поэтому вам нужно либо изменить параметр origin='lower'
, либо вы хотите соответствующим образом настроить параметр extent
, который управляет значениями диапазона: [intial x, final x, initial у, окончательный у]. Вы можете управлять цветовой схемой, настраивая цветовую карту .
Как упоминает @joaquin в комментариях, вы также можете просто построить imshow(hist)
, чтобы увидеть полный диапазон значений (тепловая карта), а не 0 или 1.