1

我使用这篇文章中的信息创建了一个对数刻度的直方图: Histogram with Logarithmic Sc​​ale

但是, plot 的输出看起来与 hist 的输出完全不同。有谁知道如何将 plot 的输出配置为类似于 hist 的输出?谢谢您的帮助。

4

2 回答 2

2

链接答案的简化,可重复版本是

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

要使轴看起来更像“hist-like”,请将最后一行替换为

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

使用这种方法让酒吧加入将是一场噩梦。我建议使用值的试错法lwd(在这个例子中,34 是接近正确的地方),或者学习使用latticeor ggplot


编辑:您不能设置边框颜色,因为条形不是真正的矩形——它们只是粗线。我们可以通过在顶部绘制稍细的线条来伪造边框效果。更新的代码是

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)
于 2010-01-21T15:28:13.060 回答
1

使用ggplot2怎么样?

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

但我同意哈德利对另一篇文章的评论,即有一个对数刻度的直方图对我来说似乎很奇怪 =)。

于 2010-01-21T16:23:20.270 回答