首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用y作为ggplot2中每个bin的x值之和绘制直方图

如何用y作为ggplot2中每个bin的x值之和绘制直方图
EN

Stack Overflow用户
提问于 2014-08-21 13:34:36
回答 1查看 5.9K关注 0票数 5

我有一个光伏数据包含有关太阳能工厂的信息。一个变量是以千瓦为单位的发电功率:

代码语言:javascript
复制
id   power
1    20.1
2    110.1
3    3.0
4    231.9
...  

我正试图绘制一个直方图,用幂表示为X值,其二进制宽度为50 kW。作为Y,我想显示在垃圾箱范围内的每一个工厂的累积功率。我尝试了这段代码但没有成功。

代码语言:javascript
复制
ggplot(pv, aes(x = power, y = sum(power)), stat = "bin") + 
    geom_histogram(stat = "identity", binwidth=50)

我需要用割集函数来计算和,或者可以直接用ggplot2生成这个图?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 13:39:24

这应该是你想做的事:

代码语言:javascript
复制
set.seed(1)
df <- data.frame(id=1:100, power=rlnorm(100, log(100)))
ggplot(df) + 
  geom_histogram(aes(x=power, weight=power), binwidth=50) +
  ylab("Total Power (kW)")

weight美学迫使stat计算将每个计数乘以相应的权重,在这种情况下,这相当于幂值之和。

这里有一个更好的可视化:

代码语言:javascript
复制
ggplot(transform(df, power.bin=cut(power, 0:24 * 50, include.lowest=TRUE))) + 
  geom_bar(aes(x=power.bin, y=power), color="white", position="stack", stat="identity") +
  ylab("Total Power (kW)") + 
  scale_x_discrete(drop=F) +
  theme(axis.text.x=element_text(angle=90, vjust=.5, hjust=1))

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25427734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档