Gnuplot, qualcosa oltre i grafici

23 05 2010

Nelle guide passate in cui vi ho presentato Gnuplot vi ho mostrato come elaborare i dati, disegnare funzioni ad una o due variabili e a come salvare le vostre immagini.

Questa volta vi voglio invece mostrare come Gnuplot si comporta con altri programmi/protocolli. Non sto ancora parlando di programmi di studio come Maxima, o Octave (cosa che prima o poi farò), ma di come usare il terminale, come creare immagini per il Latex (che vi avevo gia presentato) e di come creare dei file per salvare il vostro lavoro (e non solo l’immagine).

Cominciamo quindi a vedere come interagire con il terminale:
Nella guida in cui parlavo dell’elaorazione dei dati ho sottolineato l’importanza di eseguire gnuplot nella cartella in cui erano salvati i nostri dati. Può però nascere il problema che ad un certo punto ci accorgiamo che alcuni dati non si trovano nella cartella che c’interessa, e quindi è neccessario spostarsi. Potrebbe anche darsi che magari non ci ricordiamo il nome del file e per dare una veloce occhiata non vale la pena aprire cartelle differenti e sarebbe molto più comodo dare un sorta di “ls” per poter vedere il contenuto della cartella.
Per fortuna per poter dare i comandi esattamente come se fossimo in una shell (cioè di fronte ad un terminale senza gnuplot avviato) basta dare!comandodove per comando potete dare un qualsiasi comando riconosciuto dal vostro sistema (potete vedere qua, qua e qua una piccola lista di comandi riconosciuti da sistemi operativi basati su debian), da questo momento in poi partirò dal presupposto che usiate un sistema basato su debian (come esempio esplicativo nell’immagine che potete vedere sto aggiornando il sistema).
In questo modo possiamo vedere facilmente il contenuto della nostra cartella (comando “ls”), oppure andare a prendere i dati di cui dobbiamo disegnare un grafico ovunque si trovino copiandoli nella nostra directory (comando “cp”)

Visto che a questo punto sul terminale non rimane molto altro da spiegare, direi di passare al salvataggio del nostro lavoro.
Ad esempio ho creato il seguente file (per semplicità chiamato file ;) ):

set title 'grafico bello'
set pm3d #colora la mappa
set xrange[-3:3]
set yrange[-3:3]
set zrange[-0.5:1]
set hidden3d
set isosample 40,40 #comando analogo a set sample, necessario per i grafici in 3d
splot exp(-x**2-y**2)

Per caricare il nostro salvataggio basta dare load 'file' ed è come se tutto quello che abbiamo scritto sul documento venisse riscritto sul terminale.
Gia che c’ero ne ho aprofittato per aggiungere un paio di comandi “nuovi”, ne senso che non gli avevo ancora presentati, li notate subito perchè dopo di essi ho messo un commento (che chiaramente non vengono letti da gnuplot)
In questo modo possiamo salvare facilmente tutte le nostre impostazioni e i nostri grafici se li vogliamo ridisegnare e rielaborarle.

Infine, ultima parte che voglio presentare oggi, è la possibilità di salvare i grafici fatti con gnuplot in un documento latex. Il metodo che vi presento io è il più “spartano”.
Per mostrarvi come funziona il tutto prendo come esempio il documento che ho scritto in questo articolo (ma qualsiasi documento può andare bene), che è un documento molto semplice.
A questo punto da gnuplot digitiamoset terminal latex
set output 'plot.tex'
load 'file'

Adesso se controllate nella vostra cartella troverete un file chiamato plot.tex, con dentro un codice, che basta copiare nel nostro documento di latex e che potete compilare con il comandolatex file.texdove per file mettete il nome del file.

Per tornare al terminale predefinito (o continuerete a generare soltanto documenti .tex) dovete dare:set terminal wxt

Non perchè questo sarà l’ultimo articolo che riguarderà gnuplot, ma mi sembra doveroso segnalarvi dove potete trovare praticamente tutta la documentazione (se il link non lo ho messo negli articolo precedenti è perchè non lo conoscevo ancora)





Latex

6 03 2010

In questo articolo voglio fare una veloce presentazione sul Latex (pronunciato latek).
Esso è un linguaggio per la formattazione dei testi, sotto alcuni aspetti molto simile all’html, quindi per poter scrivere documenti in Latex ci basta un semplicissimo blocco note (gedit ad esempio) ed un compilatore per creare i file .vdi o .pdf (in linux dovrebbe essere integrato nella maggior parte delle distro).
Il sito in italiano è il seguente: Guit
Ma cosa ha di diverso il Latex? Perchè non posso scrivere avanti con OpenOffice?
Chiaramente scrivere in Latex comporta diversi vantaggi e svantaggi, ad esempio:

Svantaggi:
1)non vi è nessun controllo di ortografia/grammatica
2)non potete modificare il documento .vdi o .pdf se vi accorgete di un piccolo errore prima, per esempio, di una stampa, assicuratevi di avere quindi con vui il file .tex
3)apparentemente è complicato da scrivere perchè non vedete quello che state scrivendo
4)è una cosa nuova e diversa e si deve imparare un attimo qualcosina

Ci sono chiaramente molti vantaggi:
1)scrivere formule complicate senza nessuna difficoltà
2)scrivere simboli di qualsiasi tipo
3)creare presentazioni
4)scrivere formule chimiche
5)scrivere spartiti musicali
6)si tratta di software libero e multipiattaforma
7)i file sono di dimensioni minime in confronto ai .doc o .odp

Cosa viene inteso con ” non vedete quello che state scrivendo”?
Che non si tratta di scrivere con un editor di testo del tipo WYSIWYG(What You See Is What You Get, quello che vedi è quello che ottieni), ma WYSIWYM (What You See Is What You Mean, quello che vedi è quello che intendi), quindi abbiamo un controllo maggiore di quello che staiamo scrivendo (tabulazione, spazi, struttura…) È solo grazie a questo approcio che diventa di una facilità estrema scrivere complesse formule matematiche, vi scrivo ora un documento:
\documentclass[11pt,a4paper]{article}
\title{Esempio di testo \LaTeX}
\author{Fekir}
\date{}
% in questo modo si inseriscono dei commenti
\usepackage{amsmath}
\begin{document}
\maketitle
Questo è un esempio di testo, vi mostro ora alcuni dei simboli più usati nella lingua italiana:\\
in questo modo si scrivono gli accenti:\\
\'\i, \'e, \'o, \'a, \'u, \`e
Gli acapi\\ e gli spazi non coincidono con quello che viene scritto nel documento .tex, pi\'u spazi vengono contati come uno, due backslash contano com un acapo e due acapi come come un fine paragrafo, mente newline \newline inizia una nuova riga. e newpage una nuova pagina (scritto coma da newline, non volevo fare 2 pagine per una guida cos\'\i corta...)
Esempi di caratteri speciali:
\$ \% \& \_ \{ \} \~ \ $\sim$
\ldots \\ per mettere le grafe fate `` (alt Gr + ', )
\footnote{si possono inserire note al pie di pagina}
\\Ed ora passiamo alla parte interessante: i simboli matematici:\\
$\pi, \lambda, \eta, \beta, \gamma, \delta, \epsilon, \theta, \omega, \kappa, \mu, \phi, \Phi, \Pi \ldots$\\per scrivere formule ed equazione si usa il seguente metodo
\begin{displaymath}
a^{2}+b^{2}=c^{2}
\end{displaymath}
in alternativa (io lo preferisco): $ x^{2}\geq0 \qquad \forall x \in \mathbf{R}$
\\In teoria tutto quello che ho scritto dovrebbe essere sufficente per poter almeno cominciare a scrivere un documento in \LaTeXe
\end{document}

Adesso dovreste copiare queste linee di testo e salvare in un documento chiamato “prova.tex”, una volta fatto, date da terminale:latex prova.tex
in questo modo verrà generato un file .dvi e due file di .log, se preferite un file .pdf al file .dvi digitate:
pdflatex prova.tex
Adesso sarebbe ottimale se metteste il documento .pdf o .vdi di fianoc al sorgente (il file .tex), in modo da poter capire minimamente la sintassi. Alla fine della fiera essa non è tanto complicata, basta ricordare come vengono per esempio scritte le lettere accentate:
\’\i =ì
\’e=è
\’o=ò
\’a=à
\’u=ù
\`e=é
come si scrivono i caratteri
\$ \% \& \_ \{ \} \ $\sim$ ==> $%&_{}~
che
\\ è un acapo
\ un ulteriore spazi
due acapi equivalgono ad un fine paragrafo
e che le formula matematiche vanno messe tra due $

Inoltre all’inizio di un documento latex va messo
\documentclass[11pt,a4paper]{article}
\title{Titolo}
\author{Autore}
\date{}

\begin{document}
\maketitle

e alla fine del documento:
\end{document}

Chiaramente se dovete scrivere un semplice documento di testo potrebbe convenire usare un editor WYSIWYG, OpenOffice per intenderci, ma se gia dovete riempirlo di lettere greche io penso che preferirei usare il Latex per poterle inserire comodamente tutte da tastiera.

Esistono inoltre diversi editor per poter scrivere in Latex, come gummi, lyx, plugins per gedit, kate lo supporta nativamente… insomma, non si è alla fine ridotti soltanto ad un blocco note scarno che non ci mostra nessuna indicazione. In un prossimo articolo magari presenterò un paio di editor che potranno sicuramente tornare comodi.