martedì 17 settembre 2013

Guida a Jgraph programma che serve a tracciare grafici e diagrammi strutturati: gestione delle curve.

Maria Susana Diaz | 12:11 |
Jgraph è un programma che serve a tracciare grafici e diagrammi strutturati.

Diversamente da altri strumenti per il disegno, Jgraph è un programma non interattivo: legge un file di input (il sorgente) e produce un file di output (la presentazione) in formato PostScript oppure EPS.

L'output può in seguito essere quindi visualizzato, stampato, incorporato in un altro file per ulteriori elaborazioni oppure convertito in altri formati.

Inoltre, si noti che Alml (il sistema di composizione SGML di Daniele Giacomini) offre supporto - a partire da gennaio 2006 - per il linguaggio Jgraph.

Questo capitolo costituisce una introduzione di livello elementare all'uso e alle caratteristiche principali del programma, senza alcuna prestesa di essere esauriente.

La documentazione di riferimento più completa per Jgraph è costituita dalla pagina di manuale, cui si rinvia il lettore interessato per gli eventuali approfondimenti.
jgraph banner2
Gestione delle curve.
Jgraph assume dei valori predefiniti per le dimensioni degli indicatori di punto, ma è possibile impostarli diversamente mediante marksize larghezza altezza.

La larghezza si intende nelle unità dell'asse delle ascisse, a meno che la scala non sia logaritmica nel qual caso si intende espressa in pollici; analogamente l'altezza fa riferimento all'unità dell'asse delle ordinate.

La parola chiave copycurve permette di creare una curva avente i medesimi attributi di quella precedente (ma non gli stessi punti, ovviamente).
newgraph
xaxis min 0 max 10 size 7
yaxis min 0 max 10 size 4
newcurve marktype box marksize 1.5 1 linetype solid cfill 1 0 0
   pts 1 3  2 5  3 1  4 8
copycurve marktype ellipse cfill 1 0 .5
   pts 6 3  7 5  8 1  9 8
f-curve-jgrStringhe.
La gestione delle stringhe in Jgraph avviene mediante la parola chiave newstring. Gli attributi delle stringhe sono la posizione, la fonte, la dimensione della fonte, il colore, la rotazione, l'allineamento e il testo. La posizione si imposta mediante x posizione_x y posizione_y. La fonte dev'assere una fonte PostScript. Le fonti standard sono Times-Roman, Times-Italic, Times-Bold, Helvetica, Helvetica-Italic, Helvetica-Bold, Courier e Symbol. Il colore viene indicato tramite lcolor, oppure si utilizza lgray per indicare la scala di grigio. Gli allineamenti si specificano come segue:
  • hjl, hjr e hjc corrispondono a sinistra, destra e centro (orizzontale) rispettivamente;
  • vjt, vjb e vjc corrispondono a sopra, sotto e centro (verticale) rispettivamente.
Si può ruotare una stringa mediante rotate gradi. Si imposta il testo di una stringa mediante il carattere :, seguito da uno spazio bianco e quindi dal testo vero e proprio. Per ottenere del testo su più righe è possibile utlizzare il carattere \ al termine di ciascuna riga tranne l'ultima.
Anche le etichette dei grafici sono stringhe, quindi possono utilizzare gli attributi or ora descritti.
copystring copia tutti gli attributi di una stringa (testo incluso).
newgraph
  xaxis min 0 max 10 hash 1 mhash 0 size 7
  yaxis min 0 max 10 hash 1 mhash 0 size 4

newstring hjl vjc x 1 y 1 : String #1

newstring hjr vjt x 9 y 1 fontsize 20 lcolor 1 0 0 : String #2

copystring hjl vjb x 1 y 2 fontsize 16 font Times-Italic : String #3

newstring hjr vjt x 9 y 2 fontsize 16 font Helvetica : String #4

newstring hjc vjc x 5 y 2 fontsize 16 font Symbol : String #5

newstring hjl vjb fontsize 45 font Courier rotate 90 x 5 y 5 : String #6
f-strings-jgrLegende.
È possibile applicare un'etichetta a una curva mediante l'attributo label: esso indica a Jgraph di creare una voce in legenda per la curva data.
newgraph
xaxis min 0 max 5
yaxis min 0 nodraw
newcurve marktype box linetype solid label : Line number one
   pts 0 6  1 9  2 11  3 14  4 18 5 20
newcurve marktype triangle linetype dashed color 1 0 0 label : Line number two
   pts 0 3  1 4  2 7  3 9  4 10 5 13
newcurve marktype none linetype dotdotdash color 1 0 1 label : And number three
         pts 0 0  1 2  2 3  3 5  4 6  5 9
f-legend1-jgr
Si possono cambiare la fonte e la posizione della legenda, come unità complessiva, scrivendo legend defaults e specificando gli attributi per le stringhe: in tal modo si modificano tutte le stringhe della legenda.
newgraph
xaxis min 0 max 5
yaxis min 0 nodraw
newcurve marktype box linetype solid label : Line number one
   pts 0 6  1 9  2 11  3 14  4 18 5 20
newcurve marktype triangle linetype dashed color 1 0 0 label : Line number two
   pts 0 3  1 4  2 7  3 9  4 10 5 13
newcurve marktype none linetype dotdotdash color 1 0 1 label : And number three
         pts 0 0  1 2  2 3  3 5  4 6  5 9

legend defaults font Times-Italic fontsize 20 rotate 30 hjl vjt x 6 y 0
f-legend2-jgrEtichette di tacca.
Analogamente al caso delle legende è possibile modificare l'insieme delle etichette di tacca di un asse, come unità complessiva, mediante l'attributo hash_labels: ad esempio, per cambiare le etichette di tacca nella figura sotto in maniera tale che la fonte sia Times-Italic e la dimensione della fonte sia 16, si può scrivere hash_labels font Times-Italic fontsize 16, e analogamente per l'asse delle ordinate.
      1 newgraph
      2 
      3 xaxis min 0 max 10 size 7
      4   hash_labels font Times-Italic fontsize 16
      5 
      6 yaxis min 0 max 10 size 4
      7   hash_labels font Times-Italic fontsize 16
      8 
      9 newcurve marktype box marksize 1.5 1 linetype solid cfill 1 0 0
     10    pts 1 3  2 5  3 1  4 8
     11 
     12 copycurve marktype ellipse cfill 1 0 .5
     13    pts 6 3  7 5  8 1  9 8


f-hlabels-jgr 
Grafici a barre.

Utilizzando come indicatori xbar e ybar si ottengono i grafici a barre: xbar produce barre che si estendono parallelamente all'asse delle ordinate, ybar barre che si estendono parallelamente all'asse delle ascisse.
      1 newgraph
      2 
      3 xaxis 
      4   min 0.1 max 4.9 
      5   size 3.5
      6   hash 1 mhash 0 no_auto_hash_labels
      7 
      8 yaxis 
      9   min 0 max .4
     10   size 2
     11   precision 3
     12 
     13 newcurve marktype xbar cfill 1 0 0 marksize .8 
     14   pts   1 .390
     15         2 .389
     16         3 .353 
     17         4 .343
     18 
     19 xaxis
     20   hash_label at 1 : Larry Walker
     21   hash_label at 2 : Tony Gwynn
     22   hash_label at 3 : Mike Piazza
     23   hash_label at 4 : Kenny Lofton
     24   hash_labels hjl vjc font Helvetica rotate -90
     25 
     26 yaxis label : Batting Average
     27 title : NL Batting Leaders, August 5, 1997


f-bar-jgr




  • Righe 3-6
    Si imposta la dimensione e l'intervallo dei valori per l'asse delle ascisse e si impostano le tacche sulle unità senza tacche secondarie; inoltre si indica a Jgraph di non generare le etichette di tacca in modo automatico, poiché si desidera personalizzarle.

  • Righe 8-11
    Niente di particolare da notare tranne l'attributo precision il quale specifica di includere tre decimali nelle etichette di tacca per l'asse delle ordinate.

  • Righe 13-17
    Traccia la curva tramite barre rosse verticali.

  • Righe 19-24
    Ulteriore modifica che interessa l'asse delle ascisse, generando etichette di tacca per ciascun punto e successivamente modificandole in maniera che appaiano ruotate di 90 gradi (in senso orario).

  • Righe 26-27
    Si genera un etichetta per l'asse delle ordinate e un titolo per il grafico.
L'esempio illustrato nella presente sezione dovrebbe convincere delle possibilità del programma Jgraph: è possibile generare grafici anche di una certa complessità in maniera abbastanza naturale.



Se ti è piaciuto l'articolo, iscriviti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog:


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

LINKEDIN