将不同类别(商店)的A-H分为出售的黑色衬衫和出售的非黑色衬衫:
1 (for A-H)
0.8600394
0.5191401
0.5200601
0.1275694
0.4371994
0.4352312
0.4994585
0.08854391
0 (for A-H)
0.6368297
0.4958072
0.4068714
0.3631703
0.3498011
0.2870286
0.4980114
0.05199099
在R中: 我想绘制一个图表,在该图表中我在x轴上显示所有类别,并且每一个我显示2条,一个代表黑衬衫,一个代表非黑衬衫。有人可以帮忙吗?谢谢!
从下面的步骤为我的数据绘制它会起作用(这是从另一个回答的问题中得出)
dat <- data.frame(country=c('USA','Brazil','Ghana','England','Australia'), Stabbing=c(15,10,9,6,7), Accidents=c(20,25,21,28,15), Suicide=c(3,10,7,8,6))
dat.m <- melt(dat, id.vars='country').
我认为直接从桌子上绘制可能会更优雅。
答案 0 :(得分:0)
正如其他人所说,您应该以一种易于使用的格式存储数据。
无论如何,这里:
library(tidyverse)
dat <- data.frame(country=c('USA','Brazil','Ghana','England','Australia'),
Stabbing=c(15,10,9,6,7), Accidents=c(20,25,21,28,15), Suicide=c(3,10,7,8,6))
dat
Gather用于将其转换为长格式:
dat.m <- dat %>% gather(crime, number, 2:4)
dat.m
基本ggplot:
ggplot (dat.m, aes(x = country, y = number, fill = crime)) + geom_bar(stat ="identity")
在您的问题中,您提到了均值,但是使用此数据,您没有足够的数据来按国家(地区)和均值进行操作,但这是按国家(地区)代码:
dat.m <- dat.m %>%
group_by(country) %>%
summarise(mean = mean(number))
dat.m
然后只需更改ggplot中的变量即可。