使用ggplot重新排列facet_wrap的级别

4
我有一个包含三个因素的现有数据集。我想使用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)

你怎么从 data 中获取 net - Arun
抱歉,那是一个错误。 - user1723765
你尝试过自己运行这个命令吗?每个分面只有一个观察结果。你知道这点吗? - Arun
另一个由于数据集导出而产生的错误,请查看编辑部分,facet 不应为 X 而应为 X.1。 - user1723765
3
请参阅此博客文章,其中讨论了在同一句子中使用“reorder”和“plot”这两个词的含义。链接:http://trinkerrstuff.wordpress.com/2012/10/15/how-do-i-re-arrange-ordering-a-plot/ - Tyler Rinker
1个回答

13

这个问题在SO上出现得太频繁了。您需要将所需列(按照您进行分面的列)作为因子获取,并按照您希望的顺序设置级别,如下所示:

data$X.1 <- factor(data$X.1, levels=unique(data$X.1))

现在,将其绘制,您将获得所需顺序的多面绘图。

enter image description here


3
只有当因子的顺序正确时,你才能按照正确顺序获得因子的各个方面。别忘了你可以将顺序设置为与级别分开。 - Andy Clifton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接