防止在facet_wrap中重新排序

问题描述

我的ggplot()重新排序数据时遇到问题。我下面有一个示例代码我有数据,并对内容中的供稿因素进行了重新排序,但是在facet_wrap()中的str_extract()之后,数据在重新排序之前就重新排序了。有办法防止这种情况发生吗?对于我的实际代码,对我来说,在ggplot的facet_wrap()中使用正则表达式很重要,

data <- chickwts
data <- mutate(data,time = 1:nrow(data))
lvl <- c("linseed","meatmeal","sunflower","soybean","casein","horsebean")
data$Feed <- factor(data$Feed,levels = lvl)
ggplot(data,aes(x = time,y = weight,color = Feed)) +
    geom_line(size = 1) + geom_point(size = 1.75) +
    facet_wrap(~str_extract(Feed,"[a-z]+"))

解决方法

您可以将factor放在facet_wrap内:

ggplot(data,aes(x = time,y = weight,color = feed)) +
    geom_line(size = 1) + geom_point(size = 1.75) +
    facet_wrap(~ factor(str_extract(feed,"[a-z]+"),levels = lvl))

enter image description here