通过在集合和路径上循环并使用
的“iter_segments()”方法
matplotlib.path.Path.
下面是一个函数,它将顶点作为
等高线、等高线截面和x、y顶点阵列:
import numpy as npdef get_contour_verts(cn): contours = [] # for each contour line for cc in cn.collections: paths = [] # for each separate section of the contour line for pp in cc.get_paths(): xy = [] # for each segment of that section for vv in pp.iter_segments(): xy.append(vv[0]) paths.append(np.vstack(xy)) contours.append(paths) return contours
Edit:
也可以在不绘制任何东西的情况下使用
未记录的
matplotlib.u cntrC模块:
from matplotlib import pyplot as pltfrom matplotlib import _cntr as cntrz = np.array([[0.350087, 0.0590954, 0.002165], [0.144522, 0.885409, 0.378515], [0.027956, 0.777996, 0.602663], [0.138367, 0.182499, 0.460879], [0.357434, 0.297271, 0.587715]])x, y = np.mgrid[:z.shape[0], :z.shape[1]]c = cntr.Cntr(x, y, z)# trace a contour at z == 0.5res = c.trace(0.5)# result is a list of arrays of vertices and path pres# (see docs for matplotlib.path.Path)nseg = len(res) // 2segments, pres = res[:nseg], res[nseg:]fig, ax = plt.subplots(1, 1)img = ax.imshow(z.T, origin='lower')plt.colorbar(img)ax.hold(True)p = plt.Polygon(segments[0], fill=False, color='w')ax.add_artist(p)plt.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)