Pergunta

Usei as informações deste post para criar um histograma com escala logarítmica:Histograma com escala logarítmica

No entanto, a saída do gráfico não se parece nada com a saída do HIST. Alguém sabe como configurar a saída do gráfico para se parecer com a saída do HIST? Obrigado pela ajuda.

Foi útil?

Solução

Uma versão simplificada e reproduzível da resposta vinculada é

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

Para que os eixos parecem mais "parecidos com histórias", substitua a última linha com

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

Conseguir que as barras se juntem serão um pesadelo usando esse método. Eu sugiro usar tentativa e erro com valores de lwd (Neste exemplo, 34 está em algum lugar perto de parecer certo), ou aprendendo a usar lattice ou ggplot.


EDIT: Você não pode definir uma cor de borda, porque as barras não são realmente retângulos - elas são apenas linhas gordas. Podemos fingir o efeito da borda desenhando linhas um pouco mais finas por cima. O código atualizado é

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)

Outras dicas

Que tal usar GGPlot2?

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

Mas eu concordo com o comentário de Hadley sobre o outro post de que ter um histograma com uma escala de log parece estranho para mim =).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top