我有一个光伏数据框,其中包含有关太阳能电厂的信息。一个变量是kw中的发电功率:
id power
1 20.1
2 110.1
3 3.0
4 231.9
...
我正在尝试绘制一个功率为X值且直径为50 kW的直方图。作为Y,我想展示垃圾箱范围内每株植物的累积功率。 我试过这段代码没有成功。
ggplot(pv, aes(x = power, y = sum(power)), stat = "bin") +
geom_histogram(stat = "identity", binwidth=50)
我需要使用cut函数计算总和,或者可以直接用ggplot2生成这个图?
答案 0 :(得分:9)
这应该做你想要的:
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
美学强制统计计算将每个计数乘以相应的权重,在这种情况下相当于对功效值求和。
这是一个更好的可视化:
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))