ubuntuusers.de

Gnuplot: Gestapeltes Balkendiagramm mit Datum als X-Achse?

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

illinux

Anmeldungsdatum:
19. Oktober 2007

Beiträge: 46

Hallo,

Ich habe folgende Daten in einer data.txt:

Datum      Z  S Ö P 
2010-08-01 23 8 9 13
2010-08-02 25 5 7 12
2010-08-03 26 5 3 13
2010-08-04 20 6 8 5
2010-08-05 23 5 12 15
2010-08-06 23 5 12 11
2010-08-07 22 9 12 5
2010-08-08 24 16 5 8
2010-08-09 23 10 12 10
2010-08-10 23 15 5 9

Diese möchte ich in einem gestapelten Balkendiagramm darstellen. Ich hab's auch schon mit einem Histogramm versucht, aber dann kann ich kein 'xrange' für's Datum angeben Hier mein vorläufiges Ergebnis:

set key outside
set title 'Fortschritt'
set terminal png
set output 'fortschritt.png'
set boxwidth 0.75 absolute
set style fill solid
set style data boxes
set xtics 1 rotate by -75
set ytics 1
set mxtics 2
set mytics 2
set ytics 10
set ylabel 'S'
set xlabel 'Datum'
plot 'data.txt' using 2 t 'Z', '' using 3 t 'S', '' using 4 t 'Ö', '' using 5 t 'P'

Dabei sind einige Daten jedoch nicht zu sehen. Hat jemand eine Idee, wie ich das besser umsetzen kann?

Viele Grüße,

Illinux

Maui_Muc

Anmeldungsdatum:
31. Dezember 2006

Beiträge: 441

set xdata time
set timefmt "%Y-%m-%d"
plot '-' u 1:2 with boxes 

Hilft dir das?

Gruß, Stefan

illinux

(Themenstarter)

Anmeldungsdatum:
19. Oktober 2007

Beiträge: 46

Hallo Stefan,

danke für deine Antwort, aber das war's leider noch nicht, da ich so kein getapeltes Diagramm hinbekomme.

Habe das Ganze jetzt erstmal als Histogramm gestaltet:

set key outside
set xtics rotate by -75
set ytics 5
set title 'Fortschritt'
set terminal png
set output 'fortschritt.png'
set style data histogram
set style histogram rowstacked
set boxwidth 0.75 absolute
set style fill solid
set ylabel 'S'
set xlabel 'Datum'
plot 'data.txt' using 2 t 'Z', '' using 3 t 'S', '' using 4 t 'Ö', '' using 5 t 'P'

Der Nachteil dabei ist, dass ich die X-Achse dann nicht als Datum formatieren kann. "set xdata time" verträgt sich nach meinen Recherchen nicht mit Histogrammen. Damit muss ich wohl leben.

Viele Grüße,

Björn

Maui_Muc

Anmeldungsdatum:
31. Dezember 2006

Beiträge: 441

ok ok, das war etwas zu wenig Information. Die Hilfe von xrange sagt dir folgendes:

... If the data are time/date, you must give the range as a quoted string according to the set timefmt format. Any value omitted will not be changed. ...

Und help style verrät dir dass es noch den Style histeps gibt. Also:

set xdata time
set timefmt "%Y-%m-%d"
set xrange ['2010-07-31':'2010-08-11']

plot 	'data.txt' using 1:2 with histeps title 'Z',\
	'data.txt' using 1:3 with histeps title 'S',\
	'data.txt' using 1:4 with histeps title 'Ö',\
	'data.txt' using 1:5 with histeps title 'P'

Passt das so? Die Formatierung überlasse ich dir, ok.

Ein klein wenig muss ich dich aber noch rügen. Wir helfen gerne bei solchen Probleme und es ist auch immer ratsam gleich das konkrete Beispiel zu liefen. Aber bitte beim nächsten mal nur ein Minimalbeispiel. Das bringt dann das Problem auf den Punkt und wir verstehen dein Problem leichter.

chris.seite

Anmeldungsdatum:
12. Januar 2010

Beiträge: Zähle...

Eig. ist das alles richtig beschreiben.

illinux

(Themenstarter)

Anmeldungsdatum:
19. Oktober 2007

Beiträge: 46

Hallo Stefan,

Das sieht gut aus, Danke. Du hast recht, ich hätte das Beispiel etwas "entschlacken" sollen. Ich gelobe Besserung 😳 Danke für deine Hilfe!

Antworten |