Apr-24-2019, 05:31 PM
I am using the user guide for event_handling and nothing works. For example, the code below (borrowed from the document) just produces the figure and when i click on points nothing happens. Bug????
https://matplotlib.org/users/event_handling.html
https://matplotlib.org/users/event_handling.html
""" compute the mean and stddev of 100 data sets and plot mean vs stddev. When you click on one of the mu, sigma points, plot the raw data from the dataset that generated the mean and stddev """ import numpy as np import matplotlib.pyplot as plt X = np.random.rand(100, 1000) xs = np.mean(X, axis=1) ys = np.std(X, axis=1) fig = plt.figure() ax = fig.add_subplot(111) ax.set_title('click on point to plot time series') line, = ax.plot(xs, ys, 'o', picker=5) # 5 points tolerance def onpick(event): if event.artist!=line: return True N = len(event.ind) if not N: return True figi = plt.figure() for subplotnum, dataind in enumerate(event.ind): ax = figi.add_subplot(N,1,subplotnum+1) ax.plot(X[dataind]) ax.text(0.05, 0.9, 'mu=%1.3f\nsigma=%1.3f'%(xs[dataind], ys[dataind]), transform=ax.transAxes, va='top') ax.set_ylim(-0.5, 1.5) figi.show() return True fig.canvas.mpl_connect('pick_event', onpick) plt.show()