Horizontale Histogramm in gnuplot
Ich versuche zu zeichnen eine horizontale Histogramm in gnuplot.
Dies ist meine aktuelle vertival (üblicher Art) Histogramm:
width=0.5
hist(x,width)=width*floor(x/width)+width/2.0
set boxwidth width*0.9
set style fill solid 0.5
plot "a" u (hist($2,width)):(1.0) smooth freq w boxes lc 3 notitle
Nun, was ich brauche, ist das genau das gleiche Ergebnis aber gedreht 90degrees im Uhrzeigersinn.
Habe ich versucht, weiter unten aber die Ergebnisse sind wirklich nicht das, was ich erwarte.
width=0.5
hist(x,width)=width*floor(x/width)+width/2.0
set boxwidth width*0.9
set style fill solid 0.5
plot "a" u (1.0):(hist($2,width)) smooth freq w boxes lc 3 notitle
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn bitmap-Ausgabe ist die einzige Sorge, man kann auch mieten
convert
Befehl des ImageMagick suite nach dem Rendern das Histogramm mitgnuplot
.Vor, dies zu tun, drehen Sie alle Etiketten innerhalb
gnuplot
mit derrotate
Richtlinie.Beispiele und weitere Einzelheiten sind hier.
Zwar gibt es noch keine generische Unterstützung für horizontale plots in gnuplot, können Sie ganz anständig horizontale barplots mit der boxxyerrorbars Stil. Es hat eine 6-Spalte-input (x, y, xlow, xhigh, ylow, yhigh). Sie müssen nur die Berechnung der Werte für die Balken sich vorher.
Ich habe gerade etwas wie diesen ($2 bezieht sich auf 'Mitte'):
Wenn Sie möchten, dass Kategorie-text-labels entlang der y-Achse, hier gehen wir (ich nehme Sie aus der ersten Spalte in meiner Datei):
Dank. Dieser funktioniert. Hier ist eine konsequente Art und Weise macht die ganze Sache.
Erster Druck der üblichen Ausgabe der Daten-Datei in einer Tabelle format in eine andere Datei sagen, datatable.txt
Sollten Sie auf die horizontale Histogramme.