使用python获取图形中的曲面曲线
我有一组需要识别模式的数据,所以我尝试使用使用python获取图形中的曲面曲线,python,Python,我有一组需要识别模式的数据,所以我尝试使用plt.courtous和plt.courtoff来完成这项任务,效果很好,现在我可以绘制轮廓并以图形方式显示数据中的过度密度。在这一步中,我试图获取曲面轮廓的信息(我的意思是,将定义轮廓的值保存在一个变量中以供以后使用)。但没有成功:有办法做到这一点吗 另外,我对颜色栏中的值表示什么有疑问,我知道这是数据的过度敏感程度,但如果有人能告诉我更多细节,那就太好了 我附上了我目前正在使用的代码(我在本例中生成了数据),以及代码的绘图 import scipy
plt.courtous
和plt.courtoff
来完成这项任务,效果很好,现在我可以绘制轮廓并以图形方式显示数据中的过度密度。在这一步中,我试图获取曲面轮廓的信息(我的意思是,将定义轮廓的值保存在一个变量中以供以后使用)。但没有成功:有办法做到这一点吗
另外,我对颜色栏中的值表示什么有疑问,我知道这是数据的过度敏感程度,但如果有人能告诉我更多细节,那就太好了
我附上了我目前正在使用的代码(我在本例中生成了数据),以及代码的绘图
import scipy.interpolate
import numpy as np
import scipy.stats as st
import matplotlib.pyplot as plt
np.random.seed(20)
data = np.random.rand(400,2)
x = data[:,0]
y = data[:,1]
plt.figure(figsize=(12,7))
# Set up a regular grid of points
xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100)
xi, yi = np.meshgrid(xi, yi)
#contours:
n_contours = 6
positions = np.vstack([xi.ravel(), yi.ravel()])
values = np.vstack([x, y])
kernel = st.gaussian_kde(values)
f = np.reshape(kernel(positions).T, xi.shape)
cfset = plt.contourf(xi, yi, f,n_contours, cmap='Greens')
cset = plt.contour(xi, yi, f,n_contours, colors='k')
#For the points data:
positions = np.vstack([x.ravel(), y.ravel()])
values = np.vstack([x, y])
kernel = st.gaussian_kde(values)
z = np.reshape(kernel(positions).T, x.shape)
#plot:
plt.scatter(x, y, c=z)
plt.colorbar(cfset)
plt.show()
谢谢
编辑:
我找到了一种方法,使用get_paths()功能,因此基本上,您需要选择轮廓,然后选择获取值(x,y)所需的线段数,例如:
#contour 3, section 0
p = cset.collections[3].get_paths()[0]
v = p.vertices
x0 = v[:,0]
y0 = v[:,1]
#contour 3, section 1
p = cset.collections[3].get_paths()[1]
v = p.vertices
x1 = v[:,0]
y1 = v[:,1]
#contour 3, section 2
p = cset.collections[3].get_paths()[2]
v = p.vertices
x2 = v[:,0]
y2 = v[:,1]
plt.plot(x0,y0,'-',x1,y1,'-',x2,y2,'-')
有了这个,您可以: