Grafici da shell

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Grafici da shell

Messaggio da wakkokid »

Salve,
Qualcuno conosce un programma (da linea di comando) per creare semplici grafici a partire da file di testo?

Ho uno script in cron che memorizza dei dati su un file di testo, un numero per riga; adesso come adesso importo il file di testo in OpenOffice Calc e creo il grafico, vorrei sapere se qualcuno di voi conosce un programma usabile da shell che, a partire dai dati incolonnati, crei un file immagine contenente il grafico.

Buona serata.

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Re: Grafici da shell

Messaggio da JohnnyMnemonic »

Al volo mi viene in mente gnuplot, confesso che non l'ho mai usato e non so effettivamente se fa al caso tuo... però hai visto mai!

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Grafici da shell

Messaggio da Mario Vanoni »

JohnnyMnemonic ha scritto:Al volo mi viene in mente gnuplot, confesso che non l'ho mai usato e non so effettivamente se fa al caso tuo... però hai visto mai!
Funziona soltanto con xterm sotto X,
ed anche molto bene.

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Re: Grafici da shell

Messaggio da albatros »

Mario Vanoni ha scritto:Funziona soltanto con xterm sotto X,
ed anche molto bene.
Puoi anche impostare un'altro output, ad esempio postscript, png, ecc, volendo quindi puoi anche non usare X.
Con set terminal puoi vedere le varie possibilità (ti basta digitare set term e premere invio, perché gnuplot capisce lo stesso se il comando completo può essere uno solo, in questo caso set terminal).

Esempio:
dato il file prova.txt con le righe:
1 3
3 7
4 9
6 13

puoi dare:

Codice: Seleziona tutto

set term pos col
set out "prova.ps";
plot "prova.txt" with points, "prova.txt" w lines lc 2;
Questo è solo un esempio banalissimo, gnuplot può fare molto di più... (il grafico ovviamente lo puoi vedere con gv prova.ps).

Avatar utente
lamarozzo
Linux 3.x
Linux 3.x
Messaggi: 732
Iscritto il: gio 14 lug 2005, 0:00
Desktop: xfce
Distribuzione: archlinux
Località: Roma

Re: Grafici da shell

Messaggio da lamarozzo »

Quoto la scelta di Gnuplot. Impara ad usarlo e potrai disinstallare Calc senza rimpianti!!! :D

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Re: Grafici da shell

Messaggio da wakkokid »

Grazie a tutti!
Gnuplot è perfetto per quello che dovevo fare, un grafico della temperatura (probabilmente esistono già programmi appositi ma volevo giocare un po con la bash :D )
il risultato , a chi interessasse, è questo:

/script_temp/temp.sh

Codice: Seleziona tutto

/bin/cat /proc/acpi/thermal_zone/THM0/temperature | /usr/bin/tail -c 5 | /usr/bin/head -c 2 >> /script_temp/storico.dat
/bin/echo "" >> /script_temp/storico.dat
/bin/cat /script_temp/storico.dat | /usr/bin/tail -n 120 > /script_temp/ultimi_120.dat
/usr/bin/gnuplot > load "/script_temp/temp_plot.d"
mv temperature.gif IN_UN_PERCORSO_ACCESSIBILE_DAL_WEB_SERVER
/script_temp/temp_plot.d

Codice: Seleziona tutto

set terminal gif
set output '/script_temp/temperature.gif'
plot "/script_temp/ultimi_120.dat" with step
a questo punto basta inserire temp.sh in crontab ogni intervallo voluto (per me, 1 minuto)

Avatar utente
Blizzard
Master
Master
Messaggi: 1509
Iscritto il: mar 2 gen 2007, 22:53
Nome Cognome: Giovanni Santostefano
Slackware: 12.2
Kernel: 2.6.27.7-smp
Desktop: Fluxbox
Contatta:

Re: Grafici da shell

Messaggio da Blizzard »

wow! questa si che è interessante.
Quando torno a casa devo provarlo.

Magari si potrebbe partire da qui per un framework di grafici statistici ad interfaccia web ma anche via framebuffer con un piccolo scriptino che richiama fbida con l'immagine da mostrare ;)

Gio

Avatar utente
wakkokid
Linux 2.x
Linux 2.x
Messaggi: 339
Iscritto il: gio 27 gen 2005, 0:00
Kernel: 2.6.3*
Desktop: Kde4
Distribuzione: Debian
Contatta:

Re: Grafici da shell

Messaggio da wakkokid »

Per il momento lo uso per monitorare la temperatura di un piccolo server a casa mia, è un portatile con processore P4 2,8 GHz NON mobile, è importante tenerla d'occhio :-)

Adesso sono impegnato con lo studio, ma pensavo di aggiungere dei grafici con la velocità di up e down e altri parametri di rete.
Il problema è che per la temperatura è sufficiente un campionamento a 0,016667 Hz (cioè 1 dato al minuto 8) ), per la velocità di upload è troppo scarso (servirebbe almeno 1Hz), e cron mi sembra non permetta di scendere sotto al minuto, di conseguenza è necessario ricorrere ad un programma che giri continuamente; il quale credo che esista già (non ne conosco, ma mi sembra impossibile che nessuno ci abbia pensato).

Rispondi