R 按颜色对包装进行排序?

R 按颜色对包装进行排序?,r,ggplot2,facet,R,Ggplot2,Facet,我想按颜色分类 例如,在这个演示代码中,颜色对应于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, ~samp

我想按颜色分类

例如,在这个演示代码中,颜色对应于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)

不过,这将是一种摆脱双重头衔的方法:

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

这将有助于:

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)

facet_wrapvarsgroup,id,labeller=labeller.multi_line=FALSE将使标题成为一行,而不是当前的doubleyes,但仍将在标题中显示组标签。您能否解释此代码是如何工作的?Hi@max,它根据级别排列数据,以便您可以根据组排列id。我希望这能帮助解决你的问题。