这是使用
scipy和
matplotlib仅解决方案:
import numpy as npimport matplotlib.pyplot as plimport scipy.stats as stdata = np.random.multivariate_normal((0, 0), [[0.8, 0.05], [0.05, 0.7]], 100)x = data[:, 0]y = data[:, 1]xmin, xmax = -3, 3ymin, ymax = -3, 3# Peform the kernel density estimatexx, 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)# Contourf plotcfset = ax.contourf(xx, yy, f, cmap='Blues')## Or kernel density estimate plot instead of the contourf plot#ax.imshow(np.rot90(f), cmap='Blues', extent=[xmin, xmax, ymin, ymax])# Contour plotcset = ax.contour(xx, yy, f, colors='k')# Label plotax.clabel(cset, inline=1, fontsize=10)ax.set_xlabel('Y1')ax.set_ylabel('Y0')pl.show()
前面的代码给出以下结果:
它具有一个不透明的x轴,一个不透明的y轴以及轮廓上的密度值。这是预期的结果吗?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)