2011-08-04 119 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作進一步的解釋...