Couleurs_Courbes
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Couleurs_Courbes



  1. #1
    turbulent

    Couleurs_Courbes


    ------

    Bonjour tout le monde;
    Merci de m'aider à résoudre ce problème: les courbes ne s'affichent pas avec leurs couleurs respectives (légende). Merci d'avance
    Code:
       clc;clear all;close all;
      %format short
      N=300;  
      for i=1:15
          if i==1
          T=60/12;
          end
          if i==2
          T=60/6;
          end
          if i==3
          T=60/3;
          end
          if i==4
          T=60/2;
          end
          if i==5
              T=1*60;
          end
          if i==6
              T=2*60;
          end
          if i==7
              T=3*60;
          end
    ##      if i==8
    ##          T=4*60;
    ##      end
    ##      if i==9
    ##          T=5*60;
    ##      end
    ##      if i==10
    ##          T=6*60;
    ##      end
    ##      if i==11
    ##          T=8*60;
    ##      end
      D=1;
      B=1;
      deltaz=200.0/N; % Pas d'espace 
      a=0.1;
      dt=(a*deltaz^2)/D; % Pas de temps
      b=B*(dt/(2*deltaz));
      Ndt=round(T/dt); % Nombre de pas de temps
      %break
      % liste des nds internes et pts du maillage
      p=[2:N];  % Indice espace
      x=[0:deltaz:200]; % Profondeur
      %x=[-200:deltaz:0];
      % condition initiale C
      %C=sin(m*pi*X);
      %C=x;
      t=0; f=-x;
      plot(f,x,'-bs','LineWidth',1.5,'MarkerSize',1),hold on
      for n=1:Ndt+1 % Incrément de temps
              t=t+dt;
            fn=f;
      f(p)=(a+b)*fn(p-1)+(1-2*a)*fn(p)+(a-b)*fn(p+1)+...
      ((b)/(2*deltaz)).*((fn(p+1)-fn(p-1)).^2);
        f(N+1)=f(N);
             for u=2:8;
      colorstflex = 'kbgrmycw';
      plotStyle = {'-o','-*','-r.','-s','-^','-.',':','-+'};
             if n==Ndt
                           T=[5 10 20 30 60 120 180];
                         %endif
        plot(f(1,:),x,plotStyle{u},'color',colorstflex(u),'LineWidth',1.5,'MarkerSize',1);hold on
        %plot(f(1,:),x,'-rs','LineWidth',1.5,'MarkerSize',1),hold on
    plotStyle{1}='-bs';
    colorstflex(1)='b';
    legendInfo{1} = ['T = ' num2str(0)];
    legendInfo{u} = ['T = ' num2str(T(u-1))];
      end
                 end    
                 end;
      legend(legendInfo,"location", 'southwest')
      
      xlabel('f(x,T)')
      ylabel('x')
      xlim([-200 0])
      ylim([0 200])
      set(gca,'view',[0 -90])
     % end
      set(gca,"ydir","reverse")
      end

    -----

  2. #2
    umfred

    Re : Couleurs_Courbes

    peut être nettoyer et bien indenter ton code et repenser ton code.
    pourquoi ne pas faire un tableau T dès le début ? Sortir tout ce qui est constant des boucles, etc
    avec un 1ere modification (sans doute pas optimale) mais qui fonctionne
    Code:
     clc;clear all;close all;
    %format short
    N=300;
    D=1;
    B=1;
    deltaz=200.0/N; % Pas d'espace
    a=0.1;
    dt=(a*deltaz^2)/D; % Pas de temps
    b=B*(dt/(2*deltaz));
    % liste des nds internes et pts du maillage
    p=[2:N];  % Indice espace
    x=[0:deltaz:200]; % Profondeur
    colorstflex = 'bkgrmycw';
    plotStyle = {'-s','-*','-r.','-o','-^','-.',':','-+'};
    
    legendInfo{1} = ['T = ' num2str(0)];
    t=0; f=-x;
    plot(f,x,plotStyle{1},'color',colorstflex(1),'LineWidth',1.5,'MarkerSize',1),hold on
    
    for i=1:8
        if i==1
            T=60/12;
        end
        if i==2
            T=60/6;
        end
        if i==3
            T=60/3;
        end
        if i==4
            T=60/2;
        end
        if i==5
            T=1*60;
        end
        if i==6
            T=2*60;
        end
        if i==7
            T=3*60;
        end
        %if i==8
        %    T=4*60;
        %end
        %      if i==9
        %          T=5*60;
        %      end
        %      if i==10
        %          T=6*60;
        %      end
        %      if i==11
        %          T=8*60;
        %      end
        Ndt=round(T/dt); % Nombre de pas de temps
        %break
        %x=[-200:deltaz:0];
        % condition initiale C
        %C=sin(m*pi*X);
        %C=x;
        for n=1:Ndt+1 % Incrément de temps
            t=t+dt;
            fn=f;
            f(p)=(a+b)*fn(p-1)+(1-2*a)*fn(p)+(a-b)*fn(p+1)+...
                ((b)/(2*deltaz)).*((fn(p+1)-fn(p-1)).^2);
            f(N+1)=f(N);
        end
        if  i > 1 && i <8
            T=[5 10 20 30 60 120 180];
            %end
            plot(f(1,:),x,plotStyle{i},'color',colorstflex(i),'LineWidth',1.5,'MarkerSize',1);hold on
            %plot(f(1,:),x,'-rs','LineWidth',1.5,'MarkerSize',1),hold on
            legendInfo{i} = ['T = ' num2str(T(i))];
        end
    end;
    legend(legendInfo,"location", 'southwest')
    
    xlabel('f(x,T)')
    ylabel('x')
    xlim([-200 0])
    ylim([0 200])
    set(gca,'view',[0 -90])
    %end
    set(gca,"ydir","reverse")

  3. #3
    turbulent

    Re : Couleurs_Courbes

    Merci infiniment umfred; c'est impeccable. C'est exactement ce que je voulais avoir.