我想用 R
创建一个条形图,显示按变量分组的 2 columns
数据的总和 . 数据设置如下:
"city" "n" "y" <br>
mon 100 200 <br>
tor 209 300 <br>
edm 98 87 <br>
mon 20 76 <br>
tor 50 96 <br>
edm 62 27 <br>
得到的地块应该有城市作为 x-axis
,每个城市2个酒吧,1代表 "n
“在那个城市的总和,另一个是 "y"
在该城市的总和 .
如果可能的话,还会在每个条形图中显示总和作为标签?
我尝试过以下方法:
d <- melt(data[,c('City','n','y')],id.vars = 1)
plot <- ggplot(d,aes(x = City,y = value)) + geom_bar(aes(fill = variable),stat = "identity",position = "dodge")
这将生成所需格式的绘图,但值不是组的总和 .
我尝试将数据聚合成这样的总和:
sum_data <- aggregate(. ~ City,data=raw_data,sum)
这给了我我想要的每个城市的总和,但由于某种原因,输出中缺少一个城市 .
使用此代码绘制图:
ggplot(sum_data,aes(x = City,y = n)) + geom_bar(aes(fill = y),stat = "identity",position = "dodge")
给出了一个条形图,每个城市有一个条形图,显示y的总和作为颜色渐变 . 不是我期望给出geom_bar中的“闪避”命令 .
谢谢 .
1 回答
用这种方式工作:
使用readr导入数据,仅接收具有数值(“n”和“y”)的列和带有组(“city”)的列 .
按组(“城市”)汇总数据,以便每个变量都有一个总和:
重塑数据,使组成为变量(将有3列:“City”,“variable”,“value”):
使用ggplot绘图: