Pregunta

I utiliza la información de este post para crear un histograma con escala logarítmica: Histograma con escala logarítmica

Sin embargo, la salida de la trama parece en nada a la salida de la hist. ¿Alguien sabe cómo configurar la salida de trama para asemejarse a la salida de la hist? Gracias por la ayuda.

¿Fue útil?

Solución

A, versión reproducible simplificada de la respuesta vinculado es

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

Para obtener los ejes de aspecto más "hist-like", en lugar de la última línea con

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

Obtención de los bares para unirse va a ser una pesadilla con este método. Sugiero con ensayo y error con los valores de lwd (en este ejemplo, 34 es un lugar cerca de mirando a la derecha), o aprender a usar lattice o ggplot.


EDIT: No se puede establecer un color de borde, ya que las barras no son realmente rectángulos - son sólo líneas de grasa. Nos puede falsificar el efecto frontera dibujando ligeramente más delgadas líneas sobre la parte superior. El código actualizado es

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)

Otros consejos

¿Y si uso ggplot2?

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

Pero estoy de acuerdo con el comentario de Hadley en el otro post que tener un histograma con una escala logarítmica parece extraño para mí =).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top