繁体   English   中英

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

[英]How can I get the (x,y) values of the line that is plotted by a contour plot?

有没有一种简单的方法来获得如下所示的轮廓线的(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()

查看返回的ContourSet的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

浏览集合并提取路径和顶点不是最直接或最快速的事情。 返回的Contour对象实际上通过cs.allsegs具有段的属性,它返回一个嵌套的shape [level] [element] [vertex_coord]列表:

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

参见参考: https//matplotlib.org/3.1.1/api/contour_api.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM