Come si tracciano i grafici a barre in gnuplot?


Risposte:


122

Grafico a barre semplice:

istogramma

set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

data.dat:

0 label       100
1 label2      450
2 "bar label" 75

Se vuoi dare uno stile diverso alle tue barre, puoi fare qualcosa come:

grafico a barre multicolore

set style line 1 lc rgb "red"
set style line 2 lc rgb "blue"

set style fill solid
set boxwidth 0.5

plot "data.dat" every ::0::0 using 1:3:xtic(2) with boxes ls 1, \
     "data.dat" every ::1::2 using 1:3:xtic(2) with boxes ls 2

Se vuoi fare più battute per ogni voce:

data.dat:

0     5
0.5   6


1.5   3
2     7


3     8
3.5   1

gnuplot:

set xtics ("label" 0.25, "label2" 1.75, "bar label" 3.25,)

set boxwidth 0.5
set style fill solid

plot 'data.dat' every 2    using 1:2 with boxes ls 1,\
     'data.dat' every 2::1 using 1:2 with boxes ls 2

barchart_multi

Se vuoi essere complicato e usare alcuni trucchi gnuplot:

Gnuplot ha psuedo-colonne che possono essere utilizzate come indice per colorare:

plot 'data.dat' using 1:2:0 with boxes lc variable

barchart_multi2

Inoltre puoi usare una funzione per scegliere i colori che desideri:

mycolor(x) = ((x*11244898) + 2851770)
plot 'data.dat' using 1:2:(mycolor($0)) with boxes lc rgb variable

barchart_multi3

Nota: dovrai aggiungere un paio di altri comandi di base per ottenere lo stesso effetto delle immagini di esempio.


Per molte applicazioni è più conveniente utilizzare lo histogramstile di stampa, soprattutto per raggruppare e impilare i valori.
Christoph

@Christoph Ciao, se voglio aggiungere la chiave per questo tipo di grafico? cosa dovrei fare ? Ad esempio, se voglio aggiungere una chiave che dice che la linea blu è "inverno" e la linea rossa è "estate"
alex

1
@alex Non sono sicuro, quale di tutti questi esempi intendi: con lc rgb variablenon puoi avere voci chiave diverse.
Christoph

Per qualsiasi motivo, ho dovuto usare la direttiva "notitle" dopo la clausola di ogni trama per evitare che la leggenda venisse a galla.
chinnychinchin

25
tracciare "data.dat" utilizzando 2: xtic (1) con istogramma

Qui data.dat contiene i dati del modulo

titolo 1
titolo2 3
"titolo lungo" 5

17

Vorrei solo espandere la risposta in alto, che utilizza GNUPlot per creare un grafico a barre, per i principianti assoluti perché ho letto la risposta ed ero ancora confuso dal diluvio di sintassi.

Iniziamo scrivendo un file di testo di comandi GNUplot. Chiamiamolo comandi.txt:

set term png
set output "graph.png"
set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

set term pngimposterà GNUplot per l'output di un file .png ed set output "graph.png"è il nome del file in cui verrà prodotto.

Le due righe successive sono piuttosto autoesplicative. La quinta riga contiene molta sintassi.

plot "data.dat" using 1:3:xtic(2) with boxes

"data.dat"è il file di dati su cui stiamo operando. 1:3indica che useremo la colonna 1 di data.dat per le coordinate x e la colonna 3 di data.dat per le coordinate y. xtic()è una funzione responsabile della numerazione / etichettatura dell'asse x. xtic(2), quindi, indica che utilizzeremo la colonna 2 di data.dat per le etichette.

"data.dat" ha questo aspetto:

0 label       100
1 label2      450
2 "bar label" 75

Per tracciare il grafico, entra gnuplot commands.txtnel terminale.



2

Puoi usare direttamente gli istogrammi di stile forniti da gnuplot. Questo è un esempio se hai due file in output:

set style data histograms
 set style fill solid
 set boxwidth 0.5
 plot "file1.dat" using 5 title "Total1" lt rgb "#406090",\
      "file2.dat" using 5 title "Total2" lt rgb "#40FF00"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.