我有一个包含三个因素的现有数据集。我想使用facet_grid()绘制这三个因素,并根据它们在数据集中的排序方式而不是字母顺序对它们进行排序。这是否可以在不修改我的数据结构的情况下以某种方式完成?
数据如下:
https://dl.dropboxusercontent.com/u/22681355/data.csv
data<-read.csv("data.csv", head=T)
ggplot(data, aes(time,a, color="one")) +
geom_line(linetype=1, size=0.3) +
scale_y_continuous(breaks=seq(0,1,0.2)) +
scale_x_continuous(breaks=seq(100,300,50)) +
theme_bw() +
geom_line(aes(time,b)) +
geom_line(aes(time,c)) +
geom_line(aes(time,d))+facet_wrap(~X.1)
最佳答案
这个问题在 SO 上出现得太频繁了。您必须获得所需的列(您要分面的列)作为因子,其级别按您想要的顺序排列,如下所示:
data$X.1 <- factor(data$X.1, levels=unique(data$X.1))
现在,绘制它,您将按照所需的顺序获得多面图。
关于使用 ggplot 对facet_wrap 的级别重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066870/