Axes' labels gone under perspective projection?

2 views (last 30 days)
Dikun
Dikun on 15 Nov 2013
Answered: 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!!!

Answers (3)

Walter Roberson
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
Dikun
Dikun on 15 Nov 2013
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.


Mike
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
Walter Roberson
Walter Roberson on 23 Nov 2013
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?
Mike
Mike on 18 Dec 2013
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.


Iman
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.

Categories

Find more on Graphics Performance 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!