我想在已经生成的 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/

10-12 17:22