我想在已经生成的 plot()
窗口上添加变量分布的直方图。这个脚本是高度定制的,我只能添加到它。我不能使用 hist()
来绘图。 X 轴是连续的,Y 轴是概率 [0,1]( 编辑: y 轴之一是概率,另一个是连续的)。如何在已生成的 plot()
上添加条形来表示此变量的分布?请只使用 Base-R
到目前为止我所做的是 plot()
然后用 lines(hist()$breaks, hist()$density, type="h")
进行分发,但是它只给我行而不是 hist()
的盒状条
据我了解 boxplot()
不会有帮助,barplot()
需要的因素不是连续尺度变量(就像我一样)。
更新: hist(...,add=T)
选项对我不起作用。我想像在 line()
解决方案中一样灵活(因此能够转换 x 和 y 向量),而不是绘制框的线。有任何想法吗?
最佳答案
您可以使用 hist()
简单地将 add = TRUE
图添加到现有图。不要忘记使用 freq = FALSE
表示您想要概率标度,而不是计数标度。
set.seed(123)
x<-rnorm(100)
plot(x, exp(x)/(1+exp(x)), col = "green") # some plot
hist(x, freq = FALSE, add = TRUE)
编辑: 如果您需要对计算出的直方图执行任何操作,您可以通过将其拆分为计算和绘图本身来替换
hist
调用,这是使用 rect()
完成的(参见 source code of plot.histogram
):h <- hist(x, plot = FALSE) # computation
rect(h$breaks[-length(h$breaks)], 0, h$breaks[-1], h$intensities) # plotting
关于r - 在 plot() 中添加类似 hist() 的条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20813401/