r - 按降序排列 facet_wrap 图
问题描述
我正在尝试使用facet_wrap
默认情况下按字母顺序排列图。但是,所需的结果是按数字降序对其进行排序。
以下是我得到的:
library(tidyverse)
M <- data.frame(
A = LETTERS[1:10],
B = round(rnorm(10,200,50)),
C = letters[15:24]
)
ggplot(M, aes(A, B)) +
geom_bar(stat = "identity") +
facet_wrap(~C)
相反,我希望得到按 B 列降序排列的图
arrange(M, desc(B)) %>%
ggplot(aes(A, B)) +
geom_bar(stat = "identity") +
facet_wrap(~C) ## need it ordered by B
我知道一种方法是改变关卡,但我不知道我可以在序列中的哪个位置以及如何做到这一点。
解决方案
C
您可以根据 的值B
(按降序排列)在 中使用或forcats::fct_reorder
base对因子水平重新排序:reorder
facet_wrap
library(tidyverse)
## data
M <- data.frame(
A = LETTERS[1:10],
B = round(rnorm(10,200,50)),
C = letters[15:24]
)
## using fct_reorder
ggplot(M, aes(x = A, y = B)) +
geom_bar(stat = "identity") +
facet_wrap(facets = ~fct_reorder(C, B, .desc = TRUE))
## using base reorder
ggplot(M, aes(x = A, y = B)) +
geom_bar(stat = "identity") +
facet_wrap(facets = ~reorder(C, -B)) ## -B to get descending order
推荐阅读
- django - Django-Rest-Framework:向 API 发出 PUT 请求
- python - 读取多个文本文件扩展名 .pdf、.txt 和 .htm
- ajax - 从发布请求中捕获 AJAX 错误 (422)
- javascript - 在字符串中查找空格并将其替换为数组中的另一个空格
- javascript - 如何使用此代码保留字体格式?
- three.js - 用等于点之间距离的点细分曲线
- r - 得到 2 个向量的条件求和
- batch-file - 如果第一次发生鼠标移动,则只运行一次批处理脚本|批处理脚本|
- c# - 使用没有任何列键的 LINQ 从两个表中获取数据
- c++ - 为什么这个问题的时间复杂度只考虑前面的递归调用而不考虑整个问题?