Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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 如何获得等高线图绘制的直线的(x,y)值?_Python_Matplotlib_Data Analysis - Fatal编程技术网

Python 如何获得等高线图绘制的直线的(x,y)值?

Python 如何获得等高线图绘制的直线的(x,y)值?,python,matplotlib,data-analysis,Python,Matplotlib,Data Analysis,有没有一种简单的方法可以获得绘制如下的等高线的(x,y)值: import matplotlib.pyplot as plt x = [1,2,3,4] y = [1,2,3,4] m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]] cs = plt.contour(x,y,m, [9.5]) plt.show() 查看返回的轮廓集的collections属性。特别是,第一个集合的get_paths()方法返回组成每个线段的成对点 c

有没有一种简单的方法可以获得绘制如下的等高线的(x,y)值:

import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [1,2,3,4]
m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]]
cs = plt.contour(x,y,m, [9.5])
plt.show()

查看返回的轮廓集的collections属性。特别是,第一个集合的get_paths()方法返回组成每个线段的成对点

cs.collections[0].get_paths()
要获得坐标的NumPy数组,请使用
Path.vertices
属性

p1 = cs.collections[0].get_paths()[0]  # grab the 1st path
coor_p1 = p1.vertices

遍历集合并提取路径和顶点并不是最直接或最快的事情。返回的轮廓对象实际上通过
cs.allsegs
具有线段的属性,该属性返回形状[级别][元素][顶点坐标]的嵌套列表:

num_levels = len(cs.allsegs)
num_element = len(cs.allsegs[0])  # in level 0
num_vertices = len(cs.allsegs[0][0])  # of element 0, in level 0
num_coord = len(cs.allsegs[0][0][0])  # of vertex 0, in element 0, in level 0
因此,可以将所有路径的顶点提取为:

cs.allsegs[i][j]  # for element j, in level i
见参考资料:

这真的很有用,谢谢!您知道在等高线上获取/插值等间距点的任何方法吗?(以这种方式返回的点不是等距的)