首页 > 解决方案 > 如何从具有多列的表在 R 中创建分组条形图

问题描述

我有以下数据框

proba <- data.frame(PartnerName = c("China", "Brazil", "Argentina", "UE", "US"), Food = c(1,2,3,4,5), Machinery = c(1,2,3,4,5), Chemicals = c(1,2,3,4,5), CrudeMaterials = c(1,2,3,4,5))

现在我想创建一个分组条形图,它在 x 轴上显示类别(机械、食品等),在 y 轴上显示按国家/地区分组贸易的总价值。

我想得到的图表看起来像这样(我在 excel 中做了):

我可以使用 barplot 得到一个简单的图表,但它没有那么详细和准确。任何帮助都感激不尽!

标签: rggplot2

解决方案


我们也可以使用gather

library(tidyr)
library(ggplot2)
library(dplyr)
proba %>% 
    gather(names, values, -PartnerName) %>%  
    ggplot(aes(x=names, y=values, fill = PartnerName))+
       geom_col()

推荐阅读