2011-08-04 92 views
2

我有一个轴上的3D图,我想绘制百分比。目前,这些值是小数。例如,我想将0.12显示为'12%'。matlab轴百分比

目前,我使用:

temp_zlabels=100*str2num(get(gca,'ZTickLabel')); 
    set(gca, 'ZTickLabel', sprintf('%d%%|', temp_zlabels)) 

这工作得很好,但是当使图表更大或旋转,轴值重新开始,而不是重新缩放。因此,例如,如果我有一个轴(0%25%50%75%),并且使图形更大,则轴现在读取(0%,25%,50%,75%,0%,25%,50% 75%)而不是正确地重新缩放原始轴。

什么是最好的方式来标记轴的百分比,我没有遇到这个问题?

+0

相关的问题:抑制指数格式如图蜱(http://stackoverflow.com/questions/3588293/suppress-exponential-formatting-in-图滴答) – Amro

回答

1

你必须有ZTick符合ZTickLabel

set(gca, 'ZTick', temp_zlabels/100) 
+0

谢谢。有效。 – Alec

2

您必须解决的z刻度的位置:

set(gca, 'ZTickMode','manual') 

例子:

D = rand(100,3); 
plot3(D(:,1),D(:,2),D(:,3),'o'), box on, grid on 
xlabel x, ylabel y, zlabel z 

set(gca, 'ZTickMode','manual') 
set(gca, 'ZTickLabel',num2str(100.*get(gca,'ZTick')','%g%%')) 
rotate3d on 

screenshot

参考thesepages作进一步的解释...