You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中创建堆叠条形图时出现行列堆叠方向错误的问题

问题解决:按行堆叠的条形图修正

问题出在barplot()对矩阵的处理逻辑上:该函数默认将矩阵的每一列作为一组堆叠元素,而你的需求是把**每一行(对应单个州)**作为一组,堆叠农村和城镇人口数据。

修正方案

只需要在调用barplot()时,用t()函数转置你的矩阵即可。转置后矩阵会变成2行(农村、城镇)×10列(10个州),这样barplot就会为每个州生成一个堆叠条形,包含农村和城镇两部分。

修正后的完整代码:

# 原矩阵代码无需修改
population_matrix <- matrix(c(filter_data$Rural.population,
                           filter_data$Urban.population),
                           nrow = 10,ncol = 2,byrow = FALSE)

# 转置矩阵后绘制条形图
barplot(t(population_matrix)/1000000,
         xlab = "States",ylab = "Population (in Millions)",
         col = c("Green","Blue"), # Green对应农村,Blue对应城镇
         main = "Statewise population",
         border = "Black")

补充说明

  • 转置后的矩阵,第一行对应原矩阵的第一列(农村人口),第二行对应原矩阵的第二列(城镇人口),col参数的顺序刚好匹配农村和城镇的颜色设置。
  • 如果需要添加图例来区分类别,可在代码末尾追加:
    legend("topright", legend = c("Rural Population", "Urban Population"), fill = c("Green", "Blue"))
    

内容的提问来源于stack exchange,提问作者kartik trivedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:38:22