Matplotlib: гауссов контурный график из двух массивов - PullRequest
0 голосов
/ 20 мая 2018

У меня есть два числовых массива, один из которых (239,2), содержащий мои точки данных, и один из (239,), содержащий значения двумерной гауссовой плотности для этих точек данных.

Как можноЯ создаю контурный график с помощью Matplotlib для своей функции плотности поверх точечного графика точек данных?

В настоящее время я получаю TypeError: Input z must be a 2D array, когда пытаюсь использовать функцию contour в matplotlib.Почему z должно быть 2D, если у меня есть значение для оси X, оси Y и плотности вероятности для каждой точки данных?Нужно ли как-то интерполировать?

fig, ax = plt.subplots()
ax.scatter(X[:,0], X[:,1], c='green')
ax.scatter(X[:,0], X[:,1], c='orange')
ax.contour(z, X[:,0], X[:,1])           <-- TypeError happens here
plt.show()

X имеет форму (239, 2), z имеет форму (239,)

1 Ответ

0 голосов
/ 20 мая 2018

contour нужны значения z на обычной двумерной сетке, возможно, ваши данные лучше подходят для метода tricontour:

from matplotlib.tri import Triangulation
import matplotlib.pyplot as plt
import numpy as np

x = np.random.random((100))
y = np.random.random((100))
z = x * y

tri = Triangulation(x,y)

plt.tricontour(tri, z, )
plt.scatter(x,y, c=z)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...