Delete axes interactions not working?
3 views (last 30 days)
I'm using 2021a and it seems that deleting/disabling interactions isn't working as expected. I'm just trying to either (1) make an axes with just the pan interaction, or (2) make an axes with all interactions removed
fH = figure
ax = gca;
ax.Interactions = panInteraction % I only want the pan interaction but this line seems to do nothing
Similarly removing all via the following is ineffective:
ax.Interactions =  % This line also seems to do nothing
I'm trying to make a safe figure that the user can't break so I really want to limit what they can do. The only thing I seem to be able to do is make the toolbar invisible via:
ax.Toolbar.Visible = false
Is this a bug? I seem to remember having the ability to manipulate ax.Interactions in earlier MATLAB versions ...
Adam Danz on 23 Apr 2021
Edited: Adam Danz on 23 Apr 2021
Difference between toolbar and interactions
Interactions are the actions available by using the mouse to zoom/pan/rotate etc the axes without activing a tool in the axis toolbar. For example, after generating a figure that supports zooming you can use the mouse scroll wheel to immediately zoom into the axes.
The toolbar property is independed of the interactions property. For example, you can remove panning from the toolbar but still allow for interactive panning by mouse actions.
I agree that these differences could be clearer in the documentation.
Specify toolbar tools
To specify toolbar tools, use the axtoolbar function. This example reduces the toolbar to the pan tool.
ax = gca();
tb = axtoolbar(ax,'pan')
See the toolbar link I provided above for all toolbar options.
Specify axis interactions
To disable all tools except panning, set the Interactions property of the axes. This example reduces interactions to panning.
ax = gca;
ax.Interactions = panInteraction;
See the interactions link I provided above for all interaction options.