Python Forum
How do i get matplotlib event handling to work?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How do i get matplotlib event handling to work?
#2
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
"""
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()
Reply


Messages In This Thread
non of the examples are working - by jenya56 - Apr-24-2019, 05:31 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
Star python exception handling handling .... with traceback mg24 3 1,313 Nov-09-2022, 07:29 PM
Last Post: Gribouillis
  Matplotlib: How do I convert Dates from Excel to use in Matplotlib JaneTan 1 3,271 Mar-11-2021, 10:52 AM
Last Post: buran
  Matplotlib Hovering Event displaying (x, y) data RawlinsCross 0 6,247 Oct-18-2019, 06:13 PM
Last Post: RawlinsCross

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020