Axis location in a GUI axes object

I'd like to create an axes object in a GUI, with both axes located at the origin. In a conventional plot, I set the XAxisLocation property to 'origin', but in the GUI it seems only 'top' or 'bottom', (or 'left' or 'right' for y-axis) can be used. Is there a solution to my problem?

回答 (2 件)

Walter Roberson
Walter Roberson 2016 年 12 月 15 日
編集済み: Walter Roberson 2016 年 12 月 15 日

0 投票

In MATLAB, "figure" and "GUI" are the same thing, so if you are able to use 'origin' in an "conventional plot" then really you are using it in a GUI. Adding uicontrol to a figure does not change what can be drawn in the figure.
Are you possibly referring to some limitation in GUIDE, or in appdesigner ? If you are referring to a limitation in GUIDE, then in your code after you draw into the axis you can set the properties of the axis. (I was going to say you could put it into the axes CreateFcn callback, but axes properties have a tendency to disappear when you draw in the axes.)
fulvio schettino
fulvio schettino 2016 年 12 月 15 日
編集済み: Walter Roberson 2016 年 12 月 15 日

0 投票

Yes, you are right... I was talking about a GUIDE application.
Thank you.
In particular, I'm trying to use the following code
set(handles.axes1,'XAxisLocation','origin');
set(handles.axes1,'YAxisLocation','origin');
in a pushbutton callback, but is has no effect. Moreover, in the properties window of the axes object, only left/right or top/bottom options can be selected.

5 件のコメント

Walter Roberson
Walter Roberson 2016 年 12 月 15 日
編集済み: Walter Roberson 2016 年 12 月 15 日
Could you try this test interactively:
ax = gca;
plot(ax, randn(1,20));
set(ax,'ButtonDownFcn',@(sec,obw) set(ax,'XAxisLocation','origin'));
and then go and click in the axes. Does the origin change?
Perhaps you could attach your code and .fig file?
fulvio schettino
fulvio schettino 2016 年 12 月 16 日
編集済み: fulvio schettino 2016 年 12 月 16 日
Thank you for your answer. I tried your code, but I got the following error:
Error using set Bad property value found. Object Name: axes Property Name: 'XAxisLocation'. Error in @(sec,obw)set(ax,'XAxisLocation','origin') Error while evaluating axes ButtonDownFcn
Maybe it's a matter of Matlab version... I'm using R2013a...
Walter Roberson
Walter Roberson 2016 年 12 月 17 日
R2015b was the version version that supported 'origin' for axes locations.
fulvio schettino
fulvio schettino 2016 年 12 月 17 日
Yes, now I have realized that. Thank you. So, with R2013a how can I obtain the same result? Actually, my goal is to plot complex numbers on the Gauss plane, so I need to put in evidence the four quadrants of the plane.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeGraphics Object Properties についてさらに検索

質問済み:

2016 年 12 月 15 日

コメント済み:

2016 年 12 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by