Python:查找等高线matplotlib.pyplot.contour()

Python:查找等高线matplotlib.pyplot.contour(),第1张

Python:查找等高线matplotlib.pyplot.contour()

通过在集合和路径上循环并使用
的“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 cntr
C模块:

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()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4953254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存