MATLAB Answers

Mesh plot in GUI works, but in separate figure won't plot

8 views (last 30 days)
John Petersen
John Petersen on 6 Aug 2012
I have a GUI with axes defined with a Tag 'axes1' When I plot
mesh(handles.axes1,x,y,z)
where x and y are column vectors, and z a 2d array, everything plots just fine on the GUI. But if I plot a figure separate from the GUI, it only plots the axis and the background is gray instead of white.
I've tried two approaches
figure; H=gca;
mesh(H,x,y,z);
f = figure();
H = axes('Parent',f);
mesh(H,x,y,z);
but both approaches yield the same result. A figure with 3D axis and gray background. I can clear axes1 and replot to axes1 with no problem. I don't have the same problem with the mesh example in the help. That is,
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(H,X,Y,Z)
mesh(handles.axes1,X,Y,Z)
plots fine in both axes. X and Y are 2d vectors instead of 1d that I use, but I don't know if that has something to do with it. What am I not doing correctly to make the 3d plot in a separate figure?

  0 Comments

Sign in to comment.

Answers (2)

Seyhan Emre Gorucu
Seyhan Emre Gorucu on 6 Aug 2012
Edited: Seyhan Emre Gorucu on 6 Aug 2012
a=figure;
axes1 = axes('Color',[1 1 1]);
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);

  4 Comments

Show 1 older comment
Seyhan Emre Gorucu
Seyhan Emre Gorucu on 6 Aug 2012
I just checked what gca means. It means the current axes. You have 3 lines here. The first line plots on the axes on the gui. Second line opens a new figure and renames the current axes as H. The current axes is still at the figure. Finally, it plots it back at the figure.
Seyhan Emre Gorucu
Seyhan Emre Gorucu on 6 Aug 2012
It means that you probably need to create another axes which would be:
figure
a=axes
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);
Seyhan Emre Gorucu
Seyhan Emre Gorucu on 6 Aug 2012
Please note that figure and axes are not the same things. Here you create new figure but you don't create new axes.

Sign in to comment.


Seyhan Emre Gorucu
Seyhan Emre Gorucu on 6 Aug 2012
Edited: Seyhan Emre Gorucu on 6 Aug 2012
Hm. I have a GUI open and when I run my code I get a nice plot at another figure. I can't see why it doesn't work for you. I hope somebody resolves the problem.

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by