我有关于通过“国家”阅读新闻的简单数据,因此有两个变量。我想制作一个水平条形图,按国家显示“阅读”新闻和“其他”答案的百分比。我应该首先转换数据还是有一个特殊的包含这种数据的条形图包?
我的数据看起来像这样:
Country News
UK Read
UK Otherwise
UK Read
FR Read
FR Otherwise
FR Otherwise
DE Read
DE Read
DE Read
DK Read
DK Read
DK Otherwise
答案 0 :(得分:1)
让原始数据框为df
library(dplyr)
library(tidyr)
df2 <- df %>%
group_by(Country, News) %>%
tally() %>%
complete(News, fill = list(n = 0)) %>%
mutate(Percentage = n / sum(n) * 100)
ggplot(df2, aes(News, Percentage, fill = Country) +
geom_bar(stat = 'identity', position = 'dodge') +
theme_bw()+coord_flip()