Gnuplot/Terminali

Il risultato finale del grafico che vogliamo realizzare può cambiare a seconda del tipo di terminale impostato.

E' quindi necessario capire cosa sia un terminale, come influenza l'output e come si cambia

Scelta del terminale

Prima ancora di sapere "cosa" e "come" andare a disegnare gnuplot vuole sapere "dove", ossia su quale supporto dovrà comparire il disegno.
Questa genercia destinazione prende il nome di "terminale", e può essere qualcosa di molto molto vario.

Esistono terminali per differenti ambienti grafici, stampanti o formati di file.

Ognuno di essi inoltre supporta un proprio set di opzioni con le quali specificare le caratteristiche tipiche del formato scelto.

Per visualizzare l'elenco dei terminali supportati dalla nostra installazione si digiti

gnuplot> set terminal

o, a scelta

gnuplot> set term

Otterremo un output molto simile a:

Available terminal types:
          aed512  AED 512 Terminal
          aed767  AED 767 Terminal
            aifm  Adobe Illustrator 3.0 Format
        bitgraph  BBN Bitgraph Terminal
             cgm  Computer Graphics Metafile
           corel  EPS format for CorelDRAW
            dumb  ascii art for anything that prints text
             dxf  dxf-file for AutoCad (default size 120x80)
           eepic  EEPIC -- extended LaTeX picture environment
             emf  Enhanced Metafile format
           emtex  LaTeX picture environment with emTeX specials
        epslatex  LaTeX picture environment using graphicx package
    epson_180dpi  Epson LQ-style 180-dot per inch (24 pin) printers
     epson_60dpi  Epson-style 60-dot per inch printers
     epson_lx800  Epson LX-800, Star NL-10, NX-1000, PROPRINTER ...
             fig  FIG graphics language for XFIG graphics editor
             gif  GIF images using libgd and TrueType fonts
            gpic  GPIC -- Produce graphs in groff using the gpic preprocessor
         hp2623A  HP2623A and maybe others
          hp2648  HP2648 and HP2647
          hp500c  HP DeskJet 500c, [75 100 150 300] [rle tiff]
            hpdj  HP DeskJet 500, [75 100 150 300]
            hpgl  HP7475 and relatives [number of pens] [eject]
          hpljii  HP Laserjet series II, [75 100 150 300]
            hppj  HP PaintJet and HP3630 [FNT5X9 FNT9X17 FNT13X25]
          imagen  Imagen laser printer
            jpeg  JPEG images using libgd and TrueType fonts
      kc_tek40xx  MS-DOS Kermit Tek4010 terminal emulator - color
      km_tek40xx  MS-DOS Kermit Tek4010 terminal emulator - monochrome
           latex  LaTeX picture environment
              mf  Metafont plotting standard
             mif  Frame maker MIF 3.00 format
              mp  MetaPost plotting standard
         nec_cp6  NEC printer CP6, Epson LQ-800 [monocrome color draft]
         okidata  OKIDATA 320/321 Standard
             pbm  Portable bitmap [small medium large] [monochrome gray color]
            pcl5  HP Designjet 750C, HP Laserjet III/IV, etc. (many options)
             pdf  PDF (Portable Document File) file driver
             png  PNG images using libgd and TrueType fonts
      postscript  PostScript graphics, including EPSF embedded files (*.eps)
         pslatex  LaTeX picture environment with PostScript \specials
           pstex  plain TeX with PostScript \specials
        pstricks  LaTeX picture environment with PSTricks macros
             qms  QMS/QUIC Laser printer (also Talaris 1200 and others)
           regis  REGIS graphics language
         selanar  Selanar
           starc  Star Color Printer
             svg  W3C Scalable Vector Graphics driver
     tandy_60dpi  Tandy DMP-130 series 60-dot per inch graphics
         tek40xx  Tektronix 4010 and others; most TEK emulators
         tek410x  Tektronix 4106, 4107, 4109 and 420X terminals
         texdraw  LaTeX texdraw environment
            tgif  TGIF X11 [mode] [x,y] [dashed] ["font" [fontsize]]
        tkcanvas  Tk/Tcl canvas widget [perltk] [interactive]
            tpic  TPIC -- LaTeX picture environment with tpic \specials
         unknown  Unknown terminal type - not a plotting device
           vttek  VT-like tek40xx terminal emulator
             x11  X11 Window System
            xlib  X11 Window System (gnulib_x11 dump)

Come è possibile osservare nell'elenco compaiono formati di file (gif, jpeg, pdf, png) gestori di finestre (x11) o dispositivi per la stampa (epson_*, hp*).

!!! Attenzione: il contenuto dell'elenco può variare molto a seconda di come è stato installato gnuplot.

A seconda della distribuzione che usate e di come e stata configurata potreste ritrovarvi con dei terminali in più o in meno.

Non solo, ma se siete addirittura su un sistema operativo differente potreste ritrovare nell'elenco i terminali atari, aqua, windows o sun.

Una volta visualizzato l'elenco e compiuta la scelta opportuna si dovrà digitarte il comando

gnuplot> set terminal <terminale> <opzioni>

oppure

gnuplot> set term <terminale> <opzioni>

Per sapere quali sono le opzioni del terminale scelto fate un bel

gnuplot> help <terminale>

Se scegliamo come terminale un formato di file, dovremo anche precisare un nome, con cui il nostro disegno verrà salvato.
Quest'operazione si svolge facilmente con il comando

gnuplot> set output "<nome_file>"

che ridirige l'uotput da standard output al file <nome_file>

!!! Attenzione: nonn dimenticatevi le virgolette

In questo modo l'output viene rediretto dallo standard output al file <nome_file>.
Se questa operazionoe non viene eseguita compariranno sullo schermo una miriade di caratteri senza senso.
Siete avvisati.

In questa sezione si è accennato al comando set. Questo è un comando molto potente ed espressivo q cui è dedicata un'intera sezione, alla quale si rimanda per una sua trattazione (molto) più dettagliata.

Effetti del terminale

Ogni terminale è un po' come un artista che disegna con un proprio stile e con le sue peculiarità.
Terminali differenti, pertanto, gesiscono in maniera diversa tutti quegli aspetti "decorativi" del grafico, come dimensione e allineamento del testo, tratteggi, riempimento delle superfici, punte delle frecce e via dicendo.

Vediamo quindi quali sono questi aspetti, ma teniamo in considerazionie che non è detto che tutti i terminali supportino tutte le possibili opzioni:

  • Rotazione del testo: come viene il testo quando decidiamo di inclinarlo?
  • Spessore delle linee: se vogliamo fare una linea più grossa, quanto viene più grossa?
  • Allineamento del testo: centrato a destra o a sinistra?
  • Ampiezza dei caratteri: quanto sono grandi i font utilizzati?
  • Riempimento dei poligoni: come vengono colorate le figure?
  • Pattern di riempimento: e se voelssi usare uno schema di linee anziche' un colore uniforme?
  • Colori: quali sono i colori tra cui posso scegliere?
  • Tipo di linea: trattaggiata, coi punti, continua o altro ancora?
  • Tipo di punti: con che simbolo vinene indicato un punto nel piano X,Y?

Terminali più comuni

Di seguito viene riportato un elenco dei terminali più comuni, una loro descrizione con le opzioni che supportano, e l'output del comando

gnuplot> test terminal <terminale>

opprtunamente convertito in formato jpg

Il comando realizza un disegno schematico in cui sono presenti tutti gli aspetti gestiti dal terminal e come vengono risolti.
Per le realizzazioni seguenti sono state lasciate le opzioni di default.

Infine esistono anche formati per gestire i formati psotscript all'intermo di documenti LaTex.
In particolare pstex genera l'output da processare con Tex e pslatex quello con LaTex.

Pet vedere il risultato dei comadi

gnuplot> set terminal pstex
gnuplot> set output "gp_test_pstex.tex"
gnuplot> test terminal

si veda il file gp_test_pstex.tex

Invecem per quello dei comandi

gnuplot> set terminal pslatex
gnuplot> set output "gp_test_pslatex.tex"
gnuplot> test terminal

si guardi il file gp_test_pslatex.tex