Colorare aree Matlab

di il
1 risposte

Colorare aree Matlab

Ciao a tutti,
ho appena iniziato ad utilizzare Matlab ed ho un problema riguardo a come colorare l'area di un grafico (sia quella sopra una certa curva che quella sotto).
In pratica, io plotto la mia funzione con il comando FPLOT e vorrei colorare (e possibilmente dare anche un nome) alle due aree che si creano.

Qualcuno sa darmi una mano?
Ho provato con il comando AREA(X,Y), ma provando con la X=[0:.1:1] e Y=X.^(-0.3) mi plotta semplicemente la curva senza colorarla....

In allegato ho un esempio grezzo (fatto in paint) per capire il problema..

Thanks!
Allegati:
esempio del risultato
esempio del risultato

1 Risposte

  • Re: Colorare aree Matlab

    Una possibilità può consistere nell'utilizzare la funzione "patch" disegnare le aree.
    Nell'esempio in calce, viene rappresentata la funzione "sin" e le aree relativa a valori positivi e negativi vengono colorate, rispettivamente in verde e rosso.
    Lo sfondo viene colorato in nero.
    
    
    % 
    % Generazione e plot della curva
    % 
    x=0:.01:2*pi;
    y1=sin(x);
    plot(x,y1,'r')
    hold on
    grid on
    % 
    % Creazione e plot della patch di sfondo
    % 
    patch([0 2*pi 2*pi 0],[-1 -1 1 1],[0 0 0 0],'facecolor','k')
    % 
    % Identificazione valori "positivi" della curva e plot della patch
    % 
    tmp=find(y1 >=0);
    patch([x(tmp)],[y1(tmp)],ones(length(tmp),1),'facecolor','g')
    % 
    % Identificazione valori "negativi" della curva e plot della patch
    % 
    tmp=find(y1 < 0);
    patch([x(tmp)],[y1(tmp)],ones(length(tmp),1),'facecolor','r')
    
    
    Hope this helps.
    Allegati:
    16082_a0811706a59cb96a63193f0dabda8cec.jpg
    16082_a0811706a59cb96a63193f0dabda8cec.jpg
Devi accedere o registrarti per scrivere nel forum
1 risposte