r - 按颜色对 ggplot facet_wrap 进行排序?

标签 r ggplot2 facet

我想按 ggplot 排序facet_wrap按颜色。

例如,在此演示代码中,颜色对应于 A、B、C 组。我希望所有红色图彼此相邻,蓝色和绿色图也相同。

我尝试按组对数据进行排序,但是 ggplot绘图时似乎切换了顺序。

library(tidyverse)
set.seed(42)

# Generate example data frame
id <- 1:15
data <- map(id, ~rnorm(10))
date <- map(id, ~1:10)
group <- map_chr(id, ~sample(c('a','b','c'), size=1))
df <- tibble(id=id, data=data, date=date, group=group) %>% unnest(cols = c(data, date))

# Generate plot
df %>%
  arrange(group) %>%
  ggplot(mapping = aes(x=date, y=data, color=group)) +
  geom_line() +
  geom_point() +
  facet_wrap(~ id)

enter image description here

最佳答案

这可能有帮助:

library(tidyverse)
set.seed(42)

# Generate example data frame
id <- 1:15
data <- map(id, ~rnorm(10))
date <- map(id, ~1:10)
group <- map_chr(id, ~sample(c('a','b','c'), size=1))
df <- tibble(id=id, data=data, date=date, group=group) %>% unnest(cols = c(data, date))

df2 <- df %>% mutate(id=factor(id))%>%
  group_by(group) %>%
  mutate(N = n()) %>%
  ungroup() %>%
  mutate(id = fct_reorder(id, N))

# Generate plot
df2 %>%
  arrange(group) %>%
  ggplot(mapping = aes(x=date, y=data, color=group)) +
  geom_line() +
  geom_point() +
  facet_wrap(~ id)

enter image description here

关于r - 按颜色对 ggplot facet_wrap 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455678/

相关文章:

r - 如何使用单独的 R 中的输入创建 Shiny 的 react 函数

r - 用不同的线型连接ggplot2中的点

r - geom_raster 没有颜色渐变

使用多个 aes 设置绘制构面时从 ggplot 中的图例中删除元素

r - 计算每个因素按另一个因素分组的数量

r - 无法去除绘图的一像素宽的白边(底部和右侧)

r - 将矩阵转换为 R 中的数据框

r - 绘制时间序列样本

r - facet_wrap 添加 geom_hline