【问题标题】:matplotlib - extracting values from contour linesmatplotlib - 从等高线中提取值
【发布时间】:2013-06-11 18:26:40
【问题描述】:

This question/answer pair 展示了如何从等高线图中提取顶点:

p = cs.collections[0].get_paths()[0]
v = p.vertices
x = v[:,0]
y = v[:,1]

但是如何获取每条路径的值(即z 用于高程模型)?

【问题讨论】:

    标签: python matplotlib contour


    【解决方案1】:

    没有直接的方法,但cs.collectionscs.levels 的顺序完全相同(这是您所追求的“z”值)。

    因此,最简单的做法是:

    lookup = dict(zip(cs.collections, cs.levels))
    z = lookup[line_collection_artist]
    

    作为一个快速交互示例:

    import numpy as np
    import matplotlib.pyplot as plt
    
    def main():
        fig, ax = plt.subplots()
        cs = ax.contour(np.random.random((10,10)))
    
        callback = ContourCallback(cs)
        plt.setp(cs.collections, picker=5)
        fig.canvas.mpl_connect('pick_event', callback)
    
        plt.show()
    
    class ContourCallback(object):
        def __init__(self, cs):
            self.lookup = dict(zip(cs.collections, cs.levels))
    
        def __call__(self, event):
            print self.lookup[event.artist]
    
    main()
    

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 2022-08-19
      • 1970-01-01
      • 2017-07-12
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多