r - 根据填充变量之一重新排序 geom_bar
问题描述
有数据
dat <-
structure(list(group = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L),
.Label = c("alwaysFirst", "last"),
class = "factor"),
rsk = structure(c(3L,1L, 2L, 4L, 3L, 1L, 2L, 4L),
.Label = c("beginning", "middle", "startsWithS", "zed"),
class = "factor"),
prop = c(0.47, 0.38, 0.15, 0.54, 0.14, 0.78, 0.64, 0.36)),
class = "data.frame",
row.names = c(NA, -8L))
我可以对 ageom_bar()
进行分组和重新排序
dat %>%
ggplot(aes(x = rsk %>% fct_reorder(-prop), y = prop, fill = group)) +
geom_bar(stat = "identity", position = "dodge")
这将根据语句.fun = median
中的默认值重新排序。fct_reorder()
这很好,但是当我也在处理fill
in 时aes()
,我想强制只fct_reorder
使用其中一个值来重新排序情节。fill
换句话说,对于上面的数据,我希望绘图按 x 轴顺序排列:zed
, startsWithS
, beginning
, middle
, 降序排列基于prop
where 值的排序group == "alwaysFirst"
。我可以用(如在这个问题中levels
)的参数对值的重新排序进行硬编码,但如果可能的话,我宁愿让它这样做,特别是因为这可能会随着不同的组而改变。factor()
ggplot
我如何强制仅根据参数中的一个组对值ggplot
进行重新排序?x
fill
解决方案
推荐阅读
- json - 逻辑应用程序:如何在 JSON 变量中添加根节点?
- python - AttributeError:模块“pygame.font”没有属性“Sysfont”,
- node.js - getParametersByPath 页面大小
- sql-server - 配置链接服务器时提供程序字符串是什么
- javascript - 根据键从对象创建一个值数组
- c++ - 多个类之间的C++循环依赖
- firebase - Flutter - Firebase - 按列表项值查询
- swift - 为什么我的 collectionview 单元格没有动画?
- javascript - 如何用图像和文本填充一个数组值?- HTML/Javascript
- java - Firestore 未按请求的顺序返回结果