如何基于变量值而非元素频次填充ggplot2条形图?
解决方案:直接使用dataset1绘制目标条形图
完全可以直接使用dataset1绘制出与扩展后一致的条形图,而且这是更高效的做法,无需进行数据集扩展操作(避免Shiny中的性能开销)。
核心原理
ggplot2的geom_col()默认使用stat="identity",即直接映射变量的数值作为条形高度,而非统计元素出现频次。我们只需要将Twh映射为条形的宽度(x轴),按Country分组(y轴),并以Energy_Source填充颜色,geom_col()会自动堆叠每个国家的不同能源类型对应的Twh值,最终总长度恰好等于Tot(因为每个国家的Twh总和等于Tot)。
代码实现
library(ggplot2) # 你的原始数据集 dataset1 <- data.frame( "Country" = c(rep
相关产品推荐
相关产品推荐

