#### 15.2.10 Interacting with Plots ¶

The user can select points on a plot with the `ginput` function or select the position at which to place text on the plot with the `gtext` function using the mouse.

`[x, y, buttons] =` ginput `(n)` ¶
`[x, y, buttons] =` ginput `()` ¶

  Return the position and type of mouse button clicks and/or key strokes in the current figure window.

  If n is defined, then capture n events before returning. When n is not defined `ginput` will loop until the return key `RET` is pressed.

  The return values x, y are the coordinates where the mouse was clicked in the units of the current axes. The return value button is 1, 2, or 3 for the left, middle, or right button. If a key is pressed the ASCII value is returned in button.

  Implementation Note: `ginput` is intenteded for 2-D plots. For 3-D plots see the currentpoint property of the current axes which can be transformed with knowledge of the current `view` into data units.

  See also: gtext, waitforbuttonpress.

`b =` waitforbuttonpress `()` ¶

  Wait for mouse click or key press over the current figure window.

  The return value of b is 0 if a mouse button was pressed or 1 if a key was pressed.

  See also: waitfor, ginput, kbhit.

gtext `(s)` ¶
gtext `({s1, s2, …})` ¶
gtext `({s1; s2; …})` ¶
gtext `(…, prop, val, …)` ¶
`h =` gtext `(…)` ¶

  Place text on the current figure using the mouse.

  The string argument s may be a character array or a cell array of strings. If s has more than one row, each row is used to create a separate text object after a mouse click. For example:

  Place a single string after one mouse click

      gtext ("I clicked here")

  Place two strings after two mouse clicks

      gtext ({"I clicked here"; "and there"})

  Place two strings, each with two lines, after two mouse clicks

      gtext ({"I clicked", "here"; "and", "there"})

  Optional property/value pairs are passed directly to the underlying text objects.

  The full list of text object properties is documented at Text Properties.

  The optional return value h holds the graphics handle(s) to the created text object(s).

  See also: ginput, text.

More sophisticated user interaction mechanisms can be obtained using the ui* family of functions, see UI Elements.