Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python获取图形中的曲面曲线_Python - Fatal编程技术网

使用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,'-')
有了这个,您可以: