How do I create an axes on a figure?

40 views (last 30 days)
I use this line
handles.axes7 = axes('Units','normalized','Position',[5.2 11.923 19.2 7.769]);
But it doesn't seem to work

Accepted Answer

Stephen23
Stephen23 on 21 Jun 2018
Edited: Stephen23 on 21 Jun 2018
Your units and position are incongruous. If you use 'normalized' then all of the position values will (almost always) be between zero and one. This is explained in the axes properties page:
which states for normalized units: "Normalized with respect to the container, which is typically the figure or a panel. The lower left corner of the container maps to (0,0) and the upper right corner maps to (1,1)."
If (0,0) is the lower left of the figure and (1,1) is upper right of the figure, as the documentation clearly states, where do you think your axes lower left point (5.2,11.923) will be? (hint: waaaay outside the figure boundaries). And you specified the axes to be 19.2 times the width of the figure and 7.769 times as high: these axes are so huge, you would only ever see 0.67% of the axes inside the figure, even if you moved its lower-left corner so that it was visible.
Hint: if you are using normalized units then (0.5,0.5) is in the center of the figure.
  7 Comments
Stelios Fanourakis
Stelios Fanourakis on 21 Jun 2018
Normal size for a logo. Small enough but not tiny. Still am trying to accomplish it
Stephen23
Stephen23 on 21 Jun 2018
Edited: Stephen23 on 21 Jun 2018
"Normal size for a logo."
Well, I don't know any computer that will understand that command, so you will have to figure out what a "normal size" means in some real units that computers will understand, e.g. pixels, cm, inches, etc, then set the units and position. It is that simple.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!