Frage

Ich habe die Informationen aus diesem Beitrag verwendet, um ein Histogramm mit logarithmischer Skala zu erstellen:Histogramm mit logarithmischer Skala

Die Ausgabe aus der Darstellung sieht jedoch nicht mit der Ausgabe von Hist aus. Weiß jemand, wie man die Ausgabe aus dem Diagramm konfiguriert, um der Ausgabe von Hist zu ähneln? Danke für die Hilfe.

War es hilfreich?

Lösung

Eine vereinfachte, reproduzierbare Version der verlinkten Antwort ist

x <- rlnorm(1000)
hx <- hist(x, plot=FALSE)
plot(hx$counts, type="h", log="y", lwd=10, lend="square")

Um die Achsen "hist-ähnlich" aussehen zu lassen, ersetzen Sie die letzte Linie durch

plot(hx$counts, type="h", log="y", lwd=10, lend="square", axes = FALSE)
Axis(side=1)
Axis(side=2)

Wenn Sie die Bars dazu bringen, sich anzuschließen, wird dies ein Albtraum mit dieser Methode sein. Ich schlage vor, Versuch und Irrtum mit Werten von zu verwenden lwd (In diesem Beispiel ist 34 irgendwo in der Nähe von rechts) oder zu verwenden lattice oder ggplot.


Bearbeiten: Sie können keine Randfarbe festlegen, weil die Balken nicht wirklich rechteckig sind - sie sind nur fette Linien. Wir können den Randeffekt vortragen, indem wir leicht dünnere Linien darüber ziehen. Der aktualisierte Code ist

par(lend="square")
bordercol <- "blue"
fillcol <- "pink"
linewidth <- 24
plot(hx$counts, type="h", log="y", lwd=linewidth, col=bordercol, axes = FALSE)
lines(hx$counts, type="h", lwd=linewidth-2, col=fillcol)
Axis(side=1)
Axis(side=2)

Andere Tipps

Wie wäre es mit GGPLOT2?

x <- rnorm(1000)
qplot(x) + scale_y_log10()

Aber ich stimme Hadleys Kommentar zu dem anderen Beitrag zu, dass ein Histogramm mit einer logarithmischen Skala für mich seltsam erscheint =).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top