MATLAB Answers

Dikun
0

Axes' labels gone under perspective projection?

Asked by Dikun
on 15 Nov 2013
Latest activity Answered by Iman
on 12 May 2014
Recently I've been using slice to visualize 3D grid. Everything is fine if the projection is orthographic. If I set(gca,'projection','perspective'), all the axis labels are gone. They can be restored when the projection is set back to orthographic. Anyone knows why and how to fix it?
I'm using 2012b. Thanks!!!

  0 Comments

Sign in to comment.

3 Answers

Answer by Walter Roberson
on 15 Nov 2013

Random guess: try
opengl software
If that doesn't work we will need to know which operating system you are running on (including version)

  1 Comment

Doesn't work... It happened on both Windows 7 and 8. My current workaround is to use text(x,y,z,string). But it's static if I rotate the object. Still want to use xlabel.

Sign in to comment.


Answer by Mike
on 22 Nov 2013

I'm running into the same issue with patch. I found that if the number of patches is small, and I do not use FaceAlpha, labels are displayed correctly. But, these limitations are frustrating.
figure(1)
clf
view(3);
camproj('perspective') % If commented out, labels are shown
axis vis3d
N = 1e3; % Labels disapear for high N
fv.Faces = [1:N-2;2:N-1;3:N]';
fv.Vertices = randn(N,3);
%patch(fv,'EdgeColor',repmat(0.6,1,3),'FaceColor',[0.6 0.6 0.8])
patch(fv,'EdgeColor',repmat(0.6,1,3),'FaceColor',[0.6 0.6 0.8]...
,'FaceAlpha',0.5) % Labels diasapear when alpha is used
xlabel('x')
ylabel('y')
zlabel('z')

  2 Comments

Mike: Using FaceAlpha would force it to use the opengl renderer, which is the only one that supports transparency.
Have you experimented with "opengl software" that I mentioned above?
Sorry, I did not notice your response until now.
Yes, I have tried the opengl software command. But I noticed no difference.
I too am running Windows 7. MATLAB 2011a.

Sign in to comment.


Answer by Iman
on 12 May 2014

I've been having this problem as well. What I've found is 'painter' or 'zbuffer' keeps the titles and axes:
set(gcf,'Renderer','zbuffer')
or
set(gcf,'Renderer','painters')
(as opposed to set(gcf,'Renderer','OpenGL').
However other problems show up:
painter rendering does does seem to support RGB cdata (i have a patched object which disappears when i used painter rendering,
zbuffer rendering does not allow transparency.
This are things which I need to show so fixing the title and axes position has created these other problems.
But if you need the title and axes and don't need to worry about transparency or patch coloring, the other renderings would fix your problem.

  0 Comments

Sign in to comment.