Ввод: двумерные точки данных - Xa
имеет форму [N, 2].Это N точек в 2D-пространстве.
Желаемый результат: контурный график в двух измерениях.countourf
- правильный инструмент для этого, но обратите внимание на документацию .Эта функция рисует контур карты высот .
Отсутствует шаг: превращение отдельных точек данных в карту высот.
Вопрос заключается враспределения.Чтобы построить распределение в 1D, мы должны сгенерировать гистограмму.Чтобы сделать это в 2D, давайте создадим 2D гистограмму!numpy.histogram2d
сделает именно это для нас.Он создает карту высот, подходящую для contourf
, путем деления пространства на обычные ячейки и подсчета количества точек данных, попадающих в каждую ячейку.
Вот так:
N = 1000
mean_a = [0, 0]
cov_a = [[2, 1], [1, 2]]
Xa = np.random.multivariate_normal(mean_a, cov_a, N)
fig, ax3 = plt.subplots(nrows=1,ncols=1,figsize=(15,8))
(counts, x_bins, y_bins) = np.histogram2d(Xa[:, 0], Xa[:, 1])
ax3.contourf(counts, extent=[x_bins[0], x_bins[-1], y_bins[0], y_bins[-1]])