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.
Ecco l'utilizzo tipico di
Jgraph:
$
jgraph in.jgr > out.eps
[Invio]
oppure:
$
jgraph -P in.jgr > out.ps
[Invio]
o, ancora:
$
cat in.jgr | jgraph -P | ps2eps -f -l -q > out.eps
[Invio]
e simili.
In assenza di un nome di file dato come argomento,
Jgraph legge dallo
standard input.
Al fine di prendere confidenza con il programma
Jgraph, cominciamo vedere alcuni semplici esempi. Per indicare a
Jgraph di tracciare un nuovo grafico o diagramma si utilizza la
parola chiave
newgraph; quindi si aggiungono delle curve al diagramma mediante
newcurve; infine si aggiungono dei punti alla curva mediante
pts.
Il listato
6.1 mostra un esempio elementare, presentato graficamente in figura 6.2. Si tratta semplicemente di disegnare tre punti: (2,3), (4,5) e (1,6).
Jgraph si occupa di aggiungere gli assi di riferimento e di scegliere lo stile di tracciamento dei punti; è un esempio decisamente banale, tanto per iniziare.
Listato 6.1. Jgraph: un esempio elementare.
(* Simple jgraph *)
newgraph
newcurve pts 2 3 4 5 1 6
|
|
Si considerino adesso il listato 6.3 e la corrispondente figura 6.4. Si tratta di un esempio leggermente più complesso: nelle righe 1-3 si dà inizio al grafico mediante
newgraph, quindi si definiscono le dimensioni degli assi; le righe 5-9 tracciano tre curve: nella prima si lascia che sia
Jgraph a scegliere lo stile di tracciamento, nella seconda si specifica di indicare i punti mediante triangoli connessi da una linea solida, nella terza si specifica di non indicare i punti ma di tracciare solamente la linea che li unisce (la linea sarà tratteggiata e di colore rosso). Si noti che l'intervallo visibile degli assi è stato automaticamente calcolato in modo da contenere precisamente tutti i punti specificati nel sorgente.
Nella
pagina di manuale si trovano definiti i possibili stili da associare allle parole chiave
marktype e
linetype. Si noti in particolare che
newline è semplicemente un sinonimo per
newcurve marktype none linetype solid.
Listato 6.3. Jgraph: un grafico con tre curve di tipo differente.
1 newgraph
2 xaxis size 2
3 yaxis size 1.5
4
5 newcurve pts 0 6 1 9 2 11 3 14 4 18 5 20
6 newcurve marktype triangle linetype solid
7 pts 0 3 1 4 2 7 3 9 4 10 5 13
8 newcurve marktype none linetype dashed color 1 0 0
9 pts 0 0 1 2 2 3 3 5 4 6 5 9
|
|
L'algoritmo di riconoscimento dell'input da parte di
Jgraph è basato non sulle righe bensì sugli elementi sintattici (
token-based);
Jgraph semplicemente lavora su parole separate da
spazi bianchi; i commenti devono essere inclusi fra
(* e
*). Gli oggetti fondamentali per
Jgraph sono:
- la pagina;
- i grafici;
- gli assi;
- le curve;
- le stringhe;
- le legende.
Si può pensare che, quando si opera sul sorgente, si stanno effettivamente creando o modificando tali oggetti nella presentazione. Pertanto, quando si scrive
newcurve, si sta in effetti modificando o creando una curva, per la quale è possibile specificare
attributi, come
marktype e
linetype, e dei punti. La maggior parte degli attributi possiedono un valore predefinito che però è possibile cambiare. Se si specifica un attributo più di una volta
Jgraph considera valida l'ultima indicazione, sicché ad esempio
newcurve marktype box marktype circle equivale a
newcurve marktype circle.
In parziale deroga a quanto or ora specificato, la
parola chiave
pts agisce in maniera «additiva», pertanto
newcurve pts 0 0 1 1 2 2 equivale a
newcurve pts 0 0 pts 1 1 pts 2 2.
È inoltre possibile includere dei file esterni nel sorgente
Jgraph mediante
include nome_file.
Gestione degli assi.
Se capita di non gradire la maniera in cui
Jgraph produce automaticamente gli assi, può tornare utile la tabella 6.5.
Tabella 6.5. Jgraph: alcuni attributi degli assi.
Attributo ed eventuali valori | Significato |
size dimensione
| Imposta la dimensione dell'asse a dimensione (in pollici). |
min valore
| Imposta il valore minimo a valore. |
max valore
| Imposta il valore massimo a valore. |
hash numero_valori
| Traccia una tacca (primaria) e un'etichetta di tacca ogni numero_valori valori. |
mhash numero_tacche
| Traccia numero_tacche tacche secondarie fra ogni due tacche primarie consecutive. |
gray scala_di_grigio
| Imposta la scala di grigio dell'asse a scala_di_grigio, ove zero significa nero e uno significa bianco. |
color componente_rossa \
\ componente_verde \
\ componente_azzurra
| Imposta il colore dell'asse, codificato mediante la terna RGB indicata. |
nodraw
| Impedisce il tracciamento dell'asse, in ogni sua parte. |
draw
| Garantisce il tracciamento dell'asse, in ogni sua parte. |
log
| Imposta la scala dell'asse come logaritmica. |
linear
| Imposta la scala dell'asse come lineare. |
no_draw_hash_marks
| Impedisce il tracciamento delle tacche lungo l'asse. |
no_draw_hash_labels
| Impedisce il tracciamento delle etichette lungo l'asse. |
draw_at valore
| Traccia l'asse in una posizione diversa dal valore minimo. |
label etichetta
| Imposta l'etichetta dell'asse. |
|
Il listato 6.6 e la figura 6.7 illustrano l'uso di alcuni degli attributi descritti nella tabella 6.5.
Listato 6.6. Jgraph: uso di alcuni degli attributi degli assi.
newgraph
xaxis
size 6
min 0 max 100
hash 15 mhash 2 (* i.e. minor hashes at the 5's and 10's *)
color 1 0 0
label : This is the X axis
draw_at 10
yaxis
size 3
min 1 max 1000
log
no_draw_hash_marks
label : And this is the Y axis
color 0 1 1
newline color 1 0 1
pts 10 1
20 5
30 10
40 20
50 100
60 110
70 500
80 800
90 1000
100 1
|
|
Jgraph assume dei valori predefiniti per le dimensioni degli
indicatori di punto, ma è possibile impostarli diversamente mediante
marksize larghezzaaltezza. 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).
Il listato 6.8 e la figura 6.9 illustrano un esempio. Si noti che
cfill riempie l'interno degli indicatori con il colore specificato.
Listato 6.8. Jgraph: esempio di gestione delle curve.
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
|
|
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Nessun commento:
Posta un commento