我使用这篇文章中的信息创建了一个对数刻度的直方图: Histogram with Logarithmic Scale
但是, plot 的输出看起来与 hist 的输出完全不同。有谁知道如何将 plot 的输出配置为类似于 hist 的输出?谢谢您的帮助。
我使用这篇文章中的信息创建了一个对数刻度的直方图: Histogram with Logarithmic Scale
但是, plot 的输出看起来与 hist 的输出完全不同。有谁知道如何将 plot 的输出配置为类似于 hist 的输出?谢谢您的帮助。
链接答案的简化,可重复版本是
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 是接近正确的地方),或者学习使用lattice
or 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)
使用ggplot2怎么样?
x <- rnorm(1000)
qplot(x) + scale_y_log10()
但我同意哈德利对另一篇文章的评论,即有一个对数刻度的直方图对我来说似乎很奇怪 =)。