2013-06-11 2 views

ответ

2

Нет прямого пути, но cs.collections находится в том же порядке, что и cs.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() 
Смежные вопросы