In the last example, we encountered mouse events in the context of a button widget. We can also catch a mouse event without using a button. To this end, we need to connect a general button click to a call-back function.
To demonstrate this, we consider again the previously generated plot of the sine wave and pick by mouse clicks points and display their coordinates in a textbox to the plot. If clicked with the right mouse button, we also display the point picked by means of a red circle in the plot.
First, we prepare a textbox widget. We already know that we first have to position the widget by defining an axes object and then providing the widget with the desired properties:
from matplotlib.widgets import TextBox
textbox_ax=axes([0.85,0.6,0.1,0.15])
txtbx=TextBox(textbox_ax, label='', initial='Clicked on:\nx=--\ny=--')
We provided the box with no label but some initial text. The textbox has the attribute...