Wie zeichnen Sie Balkendiagramme in Gnuplot?


Antworten:


122

Einfaches Balkendiagramm:

Balkendiagramm

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

Wenn Sie Ihre Bars anders stylen möchten, können Sie Folgendes tun:

mehrfarbiges Balkendiagramm

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

Wenn Sie für jeden Eintrag mehrere Balken erstellen möchten:

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

Wenn Sie knifflig sein und einige nette Gnuplot-Tricks anwenden möchten:

Gnuplot hat Pseudospalten, die als Index für die Farbe verwendet werden können:

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

barchart_multi2

Außerdem können Sie eine Funktion verwenden, um die gewünschten Farben auszuwählen:

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

barchart_multi3

Hinweis: Sie müssen einige andere grundlegende Befehle hinzufügen, um den gleichen Effekt wie bei den Beispielbildern zu erzielen.


Für viele Anwendungen ist es bequemer, den histogramPlotstil zu verwenden , insbesondere zum Gruppieren und Stapeln von Werten.
Christoph

@Christoph Hallo, wenn ich einen Schlüssel für diese Art von Grafik hinzufügen möchte? was soll ich machen ? Zum Beispiel Wenn ich will , um einen Schlüssel addieren , die die blaue Linie heißt „Winter“ und die rote Linie ist „Sommer“
alex

1
@alex Ich bin mir nicht sicher, welches dieser Beispiele Sie meinen: Mit können lc rgb variableSie keine unterschiedlichen Schlüsseleinträge haben.
Christoph

Aus irgendeinem Grund musste ich nach jeder Plotklausel die Direktive 'notitle' verwenden, um die Legende vom Auftauchen abzuhalten.
Chinnychinchin

25
Zeichnen Sie "data.dat" mit 2: xtic (1) mit Histogramm

Hier enthält data.dat Daten des Formulars

Titel 1
title2 3
"langer Titel" 5

17

Ich möchte nur auf die oberste Antwort eingehen, bei der GNUPlot zum Erstellen eines Balkendiagramms für absolute Anfänger verwendet wird, da ich die Antwort gelesen habe und immer noch von der Flut der Syntax verwirrt war.

Wir beginnen mit dem Schreiben einer Textdatei mit GNUplot-Befehlen. Nennen wir es command.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 pngsetzt GNUplot so, dass eine PNG-Datei ausgegeben wird, und set output "graph.png"ist der Name der Datei, in die ausgegeben wird.

Die nächsten beiden Zeilen sind eher selbsterklärend. Die fünfte Zeile enthält viel Syntax.

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

"data.dat"ist die Datendatei, mit der wir arbeiten. 1:3gibt an, dass wir Spalte 1 von data.dat für die x-Koordinaten und Spalte 3 von data.dat für die y-Koordinaten verwenden werden. xtic()ist eine Funktion, die für die Nummerierung / Beschriftung der x-Achse verantwortlich ist. xtic(2)gibt daher an, dass wir Spalte 2 von data.dat für Beschriftungen verwenden werden.

"data.dat" sieht folgendermaßen aus:

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

Um das Diagramm zu zeichnen, geben Sie gnuplot commands.txtim Terminal ein.



2

Sie können die von gnuplot bereitgestellten Stilhistogramme direkt verwenden. Dies ist ein Beispiel, wenn zwei Dateien ausgegeben werden:

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"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.