R 条形图与非结构化数据
我有按“国家”阅读新闻的简单数据,所以有两个变量。我想制作一个水平条形图,显示各国“阅读”新闻和“其他”答案的百分比。我应该先转换数据,还是有一个特殊的数据包用于条形图 我的数据如下所示:R 条形图与非结构化数据,r,visualization,graph-visualization,R,Visualization,Graph Visualization,我有按“国家”阅读新闻的简单数据,所以有两个变量。我想制作一个水平条形图,显示各国“阅读”新闻和“其他”答案的百分比。我应该先转换数据,还是有一个特殊的数据包用于条形图 我的数据如下所示: Country News UK Read UK Otherwise UK Read FR Read FR Otherwise FR Otherwise DE Read DE Read DE Read
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
让原始数据帧为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()
库(dplyr)
图书馆(tidyr)
df2%
按(国家、新闻)分组%>%
计数()%>%
完成(新闻,填充=列表(n=0))%>%
变异(百分比=n/总和(n)*100)
ggplot(df2,aes(新闻,百分比,填充=国家)+
geom_栏(状态='identity',位置='dodge')+
主题(bw)(+coord)翻转(flip)
OP要求提供一个水平条形图。顺便说一句,在回答时提供一个绘图图像会很有帮助。谢谢。完美的解决方案,谢谢!我还建议编辑条形图,制作条形图horizontal@user2510479谢谢你。你知道为什么有些国家获得了像1.0400这样没有边界的百分比吗在[0,1]中?