Я отчаянно пытаюсь построить свои данные в виде графика двухмерной плотности с помеченными контурами. Итак, это выглядит примерно так:
Я нашел эту картинку и код для нее в старом чате здесь на stackoverflow: «Plotting 2D Оценка плотности ядра с Python ". К сожалению, это не работает с моими данными. Я всегда получаю сообщение об ошибке «Уровни контуров в диапазоне данных не найдены».
Это код:
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st
data = np.random.multivariate_normal((0, 0), [[0.8, 0.05], [0.05, 0.7]], 100)
x = data[:, 0]
y = data[:, 1]
xmin, xmax = -30, 30
ymin, ymax = 900, 1050
xx, yy = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
positions = np.vstack([xx.ravel(), yy.ravel()])
values = np.vstack([x, y])
kernel = st.gaussian_kde(values)
f = np.reshape(kernel(positions).T, xx.shape)
fig = pl.figure()
ax = fig.gca()
ax.set_xlim(xmin, xmax)
ax.set_ylim(ymin, ymax)
cfset = ax.contourf(xx, yy, f, cmap='Blues')
cset = ax.contour(xx, yy, f, colors='k')
ax.clabel(cset, inline=1, fontsize=10)
ax.set_xlabel('Y1')
ax.set_ylabel('Y0')
plt.show()
А вот выдержка из моих данных:
Был бы очень рад, если бы кто-то мог здесь помочь:)