How to make UIAXES invisible after imshow?

3 次查看(过去 30 天)
I used imshow to display an image in an UIAXES object. After displaying the image, I would like to temporarily hide the axes and image. Setting the visibility of the uiaxis to off doesn't hide the uiaxis. The image is still visible, and I can still interact with the uiaxis. How do i make the uiaxis invisible? Is this a bug?
app.exAxes.Visible = 'off';
I am using 2018b update 2.

采纳的回答

Walter Roberson
Walter Roberson 2019-2-2
Not a bug.
Unlike all of the other objects I can think of at the moment, when you set an axes Visible to off, what you are controlling is the outside decorations such as the plot box, the tick marks, the title and labels, the grid -- but not any of the things drawn in the axes. There is no control at the axes level to say "make this axes and all of its contents invisible".
There are two work-arounds for standard axes:
  1. Put the axes inside a container object such as a uipanel. When you set the container visibility to off, the graph will disappear as well. This has the advantage that you can control everything about the labels etc. and the graphics at the same time; Or
  2. Create a hggroup inside the axes, and parent the graphics objects to the hggroup. When you set the hggroup visibility to off, the graphcis will disappear. This does not affect the labels etc. so if you want those invisible you would have to set the axes visibility off as well.
  4 个评论
ILoveMATLAB
ILoveMATLAB 2019-2-5
I will try this when I get a chance. I eliminated the pause by just calculating what the panel's new position would be prior to stretching the panel.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Specifying Target for Graphics Output 的更多信息

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by