我想绘制一个直方图,其中y轴表示一列的总和。我找到了用于分类数据的示例:R直方图求和而不是频率。但是,这不是我要查找的内容,因为它不适用于需要定义容器的连续数据。
假设我有x和y:
set.seed(1)
mydata <- data.frame(y = runif (100, min= 0, max = 1),
x = rpois(100, 15) * 10)
传统的直方图如下所示:
hist (mydata$x)
现在如何获得y轴上y的累计和?
这是解决此问题的一种方法,该方法在大多数繁重的工作中都利用了hist()函数,并具有以下优势:y的累加总和的条形图与x的直方图的大小和尺寸相匹配:
set.seed(1)
mydata <- data.frame(y = runif (100, min= 0, max = 1), x = rpois(100, 15) * 10)
mx <- mydata$x
my <- mydata$y
h <- hist(mydata$x)
breaks <- data.frame(
"beg"=h$breaks[-length(h$breaks)],
"end"=h$breaks[-1]
)
sums <- apply(breaks, MARGIN=1, FUN=function(x) { sum(my[ mx >= x[1] & mx < x[2] ]) })
h$counts <- sums
plot(h, ylab="Sum", main="Sum of y Within x Bins")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句