Grafici 3D

di il
1 risposte

Grafici 3D

Salve, sono un nuovo iscritto al forum, e con una conoscenza basilare di matlab
Vorrei chiedervi, devo realizzare un grafico 3D, e vorrei mettere due dei 3 assi logaritmici...come si fa? in 2D è semplice, ma non ho trovato modo di farlo in 3 dimensioni...
Grazie mille per l'attenzione, ciao!

1 Risposte

  • Re: Grafici 3D

    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:
    Grafico 3D con asse x logaritmico
    Grafico 3D con asse x logaritmico

    Grafico 3D con asse y logaritmico
    Grafico 3D con asse y logaritmico

    Grafico 3D con asse z logaritmico
    Grafico 3D con asse z logaritmico

    Grafico 3D con assei x e y logaritmici
    Grafico 3D con assei x e y logaritmici

    Grafico 3D con tutti gli assei logaritmici
    Grafico 3D con tutti gli assei logaritmici
Devi accedere o registrarti per scrivere nel forum
1 risposte