全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
9373 14
2018-09-22
请问各位为什么画比例条形图的适合不能直接用下面的代码,而要在后面加上 group = 1呢

ggplot

(

data =

diamonds)

+


  

geom_bar

(

mapping =

aes

(

x =

cut,

fill =

color,

y =

..prop..))画出的图是这样的 110922195116.png



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-9-22 19:55:22
上面排版变奇怪了orz 代码是这样的:
ggplot(data = diamonds) +
  geom_bar(mapping = aes(x = cut, fill = color, y = ..prop..))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-22 21:04:43
因为纵轴是..prop..,即分类变量中每个类别占总量的比,group=1就是将这些类别当作一组的这样一个整体去分别计算各个类别的占比,所以须有group=1。
否则,默认的就是各个类别各自一个“组”,在计数时就是普通的条形图,而在计算占比时就成了“各自为政”——每个类别都是百分百占比,所以每个条形图都是顶头的一样高。
若是还有填充的映射,如fill=color,则每种颜色代表的color的一个分类在每个条形图中都是高度为1,7种颜色堆叠在一起,纵坐标的顶头都是7。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-23 09:48:57
narcissism0923 发表于 2018-9-22 21:04
因为纵轴是..prop..,即分类变量中每个类别占总量的比,group=1就是将这些类别当作一组的这样一个整体去分别 ...
非常感谢!我理解一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-23 14:58:49
narcissism0923 发表于 2018-9-22 21:04
因为纵轴是..prop..,即分类变量中每个类别占总量的比,group=1就是将这些类别当作一组的这样一个整体去分别 ...
请问为什么加入group = 1之后填充的颜色会不见呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-23 15:32:40
coinii 发表于 2018-9-23 14:58
请问为什么加入group = 1之后填充的颜色会不见呢?
我认为是group“强制”所有分类的条形为一个整体(这时即使纵坐标y不是计算prop占比而是默认的计数),使得针对每个条形的填充命令fill的映射无效了……除非fill是直接接收指定的某一种颜色的映射。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群