r - 使用百分比时的美学分组论点
问题描述
这是来自“R for Data Science”的数据可视化问题。
问题 5. 在我们的比例条形图中,我们需要设置 group = 1。为什么?换句话说,这两张图有什么问题?
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop..))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..prop..))
当您看到代码及其结果时,y-axix 存在问题,因为不包含 group 参数。我很清楚,所以在将原始代码更改为下面之后。
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..prop.., group = 1))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..prop.., group = color))
我可以处理第一个,它是黑色的。但问题是下一个。我知道包含“group = 1”就像黑条一样,因此将“group = 1”更改为“group = color”。y 轴现在是道具,但这并不完全是我想要的,因为切割变量(x 轴)中所有级别的整体比例之和必须为 1(=100%)但它超过 1。我想改变比例值(y 轴)。
如果您能帮我解决这个问题,我将不胜感激。
解决方案
计算组内的..prop..
百分比。它需要一个分组变量,否则每个x
都是它自己的组,并且prop
= 1 是 100%,对于每个x
.
当你放group = 1
prop
的是所有条目中 x 的百分比,因为所有条目都属于同一个组。你已经发现了。
在你的最后一个情节中,当你分组时color
,百分比是在颜色内计算的。这意味着每种颜色的总和为 1。
这是你试图达到的目标吗?
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..count../sum(..count..)), position = "fill")
推荐阅读
- azure - 从 WebApp Sandbox 访问在 Azure 上部署为 WebJob 的 WCF 服务
- jquery - 隐藏的输入值不使用 Jquery 更新
- javascript - 使用 NodeJS N-API 计算浮点值时出现问题
- javascript - 如果目标元素在视线内或通过在溢出 div 中滚动传递,则执行函数
- sql - 如何在 MS Access 的计数查询中返回零值?
- xml - xsltproc 对 XSL 的解释不同
- r - 将行值填充到某个值的右侧
- java - 来自随机生成数字的 Java 直方图
- javascript - Run javascript after input is complete
- vhdl - Moore fsm VHDL Testbench