La librairie PGPLOT

La libriairie PGPLOT est celle utilisée par GetPlot.exe et GetMap.exe pour produire des fichiers PostScript. Cette librairie est fort utile pour représenter vos résultats, puisque les fichiers PostScript ainsi obtenus peuvent être utilisés en Latex. Il est également possible de produire des fichiers GIF.


Si vous souhaitez en savoir plus, je vous recommande de lire la documentation de cette librairie.

Le lien suivant fournit une description de toutes les sous-routines.

Vous pouvez aussi consulter le site de la librairie.


PGPLOT avec le GFORTRAN sous Ubuntu

Installation

L'installation de PGPLOT sous Ubuntu est relativement longue et complexe. Lisez ces instructions si vous voulez installer PGPLOT chez vous.

Voici les fichiers obtenus au terme d'une compilation avec le gfortran :

  1. libpgplot.a
  2. grfont.dat
  3. rgb.txt

Utilisation

Pour utiliser PGPLOT, vous devez compiler votre programme avec -lpgplot
      gfortran Exemple.f90 -o Exemple.exe -lpgplot
Il est nécessaire que les variables PGPLOT_DIR et PGPLOT_DEV soient définies :
      PGPLOT_DIR=/usr/local/pgplot/
      export PGPLOT_DIR

      PGPLOT_DEV=/PS
      export PGPLOT_DEV
Ces définitions doivent idéalement être introduites dans votre .bashrc


PGPLOT avec le GFORTRAN sous Windows

Installation

Pour installer PGPLOT sous Windows avec le GFORTRAN, vous devrez installer MinGW et GrWin.

Lisez ces instructions si vous voulez installer PGPLOT chez vous.

Vous trouverez ici les instructions spécifiques à Windows 10.

Utilisation

Pour utiliser PGPLOT avec le GFORTRAN sous Windows, vous devez compiler votre programme avec
      gfortran Exemple.f90 -o Exemple.exe -I%GWMODDIR% -Wl,--subsystem,console -lpgplot -lGrWin -mwindows
Il est évidemment plus simple de mettre tout cela dans un Makefile et de faire
      make


Exemple de base

      Program Main

      implicit none

      integer,parameter :: r=4
      real(kind=r),dimension(:),allocatable :: list_x, list_y
      real(kind=r) :: xmin, xmax, ymin, ymax
      integer :: i, res

      res = 100
      allocate(list_x(1:res),list_y(1:res))

      xmin = 0._r; xmax = 10._r
      do i = 1, res
       list_x(i) = xmin + (i-1) * (xmax-xmin) / res
      enddo
      list_y = sin(list_x) * exp(-list_x)
      ymin = minval(list_y) ; ymax = maxval(list_y)

! Exemple de base:      
! ----------------
      call PGBEGIN(0, 'Plot1.ps/PS', 1, 1)            ! PS pour PostScript
      call PGENV  (xmin, xmax, ymin, ymax, 0, 1)      ! definir la fenetre
      call PGLABEL('x', 'y', 'Titre du graphique')    ! labels
      call PGPOINT(res, list_x, list_y, 4)            ! tracer des points
      call PGLINE(res, list_x, list_y)                ! tracer une ligne
      call PGEND

! Exemple plus complet:
! ---------------------
      call PGBEGIN(0, 'Plot2.ps/CPS', 1, 1)           ! CPS pour Color PostScript
      call PGSLW(3)                                   ! choisir la largeur des traits
      call PGSCH(1.5)                                 ! choisir la hauteur des caracteres
      call PGPAGE                                     ! definir la fenetre
      call PGVSTAND
      call PGWINDOW(xmin,xmax,ymin,ymax)
      call PGBOX('BCNST',0.0,0,'BCNST',0.0,0)         ! choisir le style des axes
      call PGLABEL('x', 'y', 'Titre du graphique')    ! labels

      call PGSCI (4)                                  ! choisir la couleur (bleu)
      call PGPOINT(res, list_x, list_y, 4)            ! tracer des points

      call PGSCI (2)                                  ! choisir la couleur (rouge)
      call PGSLS (1)                                  ! choisir le style des lignes (solide)
      call PGLINE(res, list_x, list_y)                ! tracer une ligne

      call PGEND

      end Program Main


Mise en pratique

  1. Faites fonctionner l'exemple de base donné plus haut.
  2. Essayez dorénavant d'utiliser PGPLOT pour vos sorties graphiques.
Vous ne devez rien me remettre pour cet appendice.