2013-02-16 130 views
2

我有一個顏色條和圖形。我想知道是否可以在顏色條上使用onclick方法,然後在圖上執行某些操作。 因此,點擊colorer的特定顏色部分,然後發生一些事情 我知道如何去做我想要發生的事情。我只想知道如何設置顏色條以允許點擊顏色條上的onclick方法matplotlib python

回答

5

當然!只要做一些像cbar.ax.set_picker(tolerance)

作爲一個簡單的例子,這將價值近圖像中的高光值,你點擊顏色條:

import numpy as np 
import matplotlib.pyplot as plt 

data = np.random.random((10,10)) 

fig, ax = plt.subplots() 
im = ax.imshow(data) 
cbar = fig.colorbar(im) 
ax.set_title('Click on the colorbar') 

highlight = ax.imshow(np.ma.masked_all_like(data), interpolation='nearest', 
         vmin=data.min(), vmax=data.max()) 

def on_pick(event): 
    val = event.mouseevent.ydata 
    selection = np.ma.masked_outside(data, val - 0.05, val + 0.05) 
    highlight.set_data(selection) 
    fig.canvas.draw() 

cbar.ax.set_picker(5) 
fig.canvas.mpl_connect('pick_event', on_pick) 

plt.show() 

enter image description here