Exemple 2 :
Tracer plusieurs courbes sur le même graphe



 
 Tracer deux, trois ou N courbes sur le même graphe n'est pas plus compliqué que d'en tracer une seule. Il suffit de faire autant d'appels à cpgline qu'il y a de courbes à tracer.
 

Listing


/**************************************************************
 polycourbe.c
 Trace de plusieurs courbes avec pgplot
 exemple des courbes cos(m x/a)
 **************************************************************/

#include <stdio.h>
#include <math.h>
#include "/usr/include/cpgplot.h"
 

main()

{
  int i,dim=128;
  float y1[dim],y2[dim],y3[dim],x[dim];
  float a=10;
  float ymin=-1, ymax=1;  /* maximum et minimum des valeurs en y */
 
 

  /* Remplissage des tableaux de valeur
     ---------------------------------- */
  for (i=0; i<dim; i++)
    {
      x[i]=i;
      y1[i]=cos(i/a);
      y2[i]=cos(2*i/a);
      y3[i]=cos(0.5*i/a);
   }
 

  /* Affichage
     --------- */
  cpgopen("?");                           /* init. pgplot */
  cpgsch(1.5);                            /* taille des carateres 1.5 */
  cpgenv(0,x[dim-1],ymin,ymax,0,0);       /* intervalles en x et en y */

  cpgscf(2);                              /* police de caracteres 2 */
  cpglab("x","y=f\\dn\\u(x)=cos(n x/10)","Plusieurs fonctions sur un graphe");
  cpgscf(1);                              /* police de caracteres 1 */
  cpgsch(1.2);

  cpgsls(1);                             /* line style 1 (continu) */
  cpgsci(1);                             /* color index 1 (blanc) */
  cpgline(dim,x,y1);                     /* trace la courbe 1*/
  cpgptxt(75,0.5,-75,0,"n=1");           /* ecrit une legende */

  cpgsci(2);
  cpgsls(2);
  cpgline(dim,x,y2);                     /* trace la courbe 2*/
  cpgptxt(82,0.8,0,0,"n=2");

  cpgsci(3);
  cpgsls(3);
  cpgline(dim,x,y3);                     /* trace la courbe 3*/
  cpgptxt(105,0.6,58,0,"n=0.5");

  cpgask(1);                              /* attend qu'on tape une touche */
  cpgend();                               /* sortie pgplot */
}
 
 

Et le résultat...