r - 如何将 ggplot 与 prop.table(table(x) 一起使用?
问题描述
首先,我有一个包含两个分类变量的数据,如下所示:
nombre <- c("A","B","C","A","D","F","F","H","I","J")
sexo <- c(rep("man",4),rep("woman",6))
edad <- c (25,14,25,76,12,90,65,45,56,43)
pais <- c(rep("spain",3),rep("italy",4),rep("portugal",3))
data <- data.frame(nombre=nombre,sexo=sexo,edad=edad,pais=pais)
如果我使用:
prop.table(table(data$sexo,data$pais), margin=1)
我可以看到级别的相对频率,例如Italy
(Man=0.25 Woman=0.5)
但问题是,当我尝试绘制时,prop.table(table(x))
我得到了一些不同的东西
ggplot(as.data.frame(prop.table(table(data),margin=1)), aes(x=pais ,y =Freq, fill=sexo))+geom_bar(stat="identity")
在Y
从 0 到 3 的轴上,例如在栏中Italy
(Woman=2 Man=2.5)
,我不需要它(而且我不知道显示的是什么),我想要与prop.table(table(x))
我认为问题与 margin=1 有关
谢谢!
解决方案
你需要做同一张桌子
tab = prop.table(table(data$sexo,data$pais), margin=1)
tab = as.data.frame(tab)
然后绘制:
ggplot(tab,aes(x=Var2,y=Freq,fill=Var1)) + geom_col()
或者简单地说:
barplot(prop.table(table(data$sexo,data$pais), margin=1))
推荐阅读
- path - PyCharm 远程解释器 [Errno 2] 没有这样的文件或目录:nvcc
- mule - 是否有 DataWeave 1.0“for”运算符?
- c# - 使用扩展授权的身份服务器 4 Windows 身份验证不起作用
- google-chrome - Chrome 未在网络推送通知中打开链接
- c# - .net:如何使用 C# 将用户添加到 Active Directory 安全组?
- function - 为什么模式匹配中不允许使用 [x, y, _]
- javascript - 无法使用 $(this) 定位元素
- apache - 无法访问 Solr 核心
- reactjs - 如何根据数字更改某些 div 颜色
- python - 有没有办法修改或创建一个新的内置?