Per ottenere un
grafico 3D con uno o più
assi logaritmici, si può procedere nel modo seguente:
[*] create il
grafico 3D con assi cartesiani usando, ed esempio, la funzione "
surf"
[*] per ognuno degli assi che si vuole rendere "
logaritmici" settare il parametro "
kscale" (dove "k" identifica l'asse):
[*][*]
set(gca,'xscale','log') per l'asse "x"
[*][*]
set(gca,'yscale','log') per l'asse "y"
[*][*]
set(gca,'xscale','log') per l'asse "z"
Nello script in calce il metodo proposto è stato applicato al grafico della funzione "peaks" (definita in MatLab).
%
% Calcolo dei dati per il grafico
%
[x,y,z]=peaks;
%
% Traslazione dei valori di x, y e z (per non avere valori negativi quando
% si utilizzeranno le scale logaritmiche
%
x=x+min(min(x))*(-1.1);
y=y+min(min(y))*(-1.1);
z=z+min(min(z))*(-1.1);
%
% Grafico 3D con assi cartesiani
%
figure
surf(x,y,z)
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Assi Cartesiani')
%
% Grafico 3D con asse x logaritmico
%
figure
surf(x,y,z)
set(gca,'xscale','log')
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Asse "X" Logaritmico')
%
% Grafico 3D con asse y logaritmico
%
figure
surf(x,y,z)
set(gca,'yscale','log')
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Asse "Y" Logaritmico')
%
% Grafico 3D con asse z logaritmico
%
figure
surf(x,y,z)
set(gca,'zscale','log')
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Asse "Z" Logaritmico')
%
% Grafico 3D con assei x e y logaritmici
%
figure
surf(x,y,z)
set(gca,'xscale','log')
set(gca,'yscale','log')
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Assi "X e Y" Logaritmici')
%
% Grafico 3D con tutti gli assei logaritmici
%
figure
surf(x,y,z)
set(gca,'xscale','log')
set(gca,'yscale','log')
set(gca,'zscale','log')
shading interp
xlabel('Asse X')
ylabel('Asse Y')
zlabel('Asse Z')
title('Tutti gli Assi Logaritmici')
Hope this helps.
Allegati: