Altere a aparência e a sensação do enredo para se parecer com Hist
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.
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 =).