控制ggplot2图例显示顺序-Redux

控制ggplot2图例显示顺序-Redux,r,ggplot2,legend,legend-properties,R,Ggplot2,Legend,Legend Properties,去年7月,阿拉斯泰尔提出了一个关于在ggplot2中订购传奇的框架良好的问题 我有一个相关但截然不同的问题,关于调整由stat_summary创建的行组成的图例的顺序。换句话说,我目前并没有像前面的例子那样,比较从单个变量或两个变量中得出的值。更确切地说,我是在计算平均数 目前生成的图例按字母顺序排列:任何来源、同学、专业等。我想对图例进行重新排序,以便根据减少的截距值对项目进行排序,以使图表更易于阅读。最好的顺序是:任何消息来源、同学、教授、斯图。工人@支持中心、助教、员工、专业、其他教员

去年7月,阿拉斯泰尔提出了一个关于在ggplot2中订购传奇的框架良好的问题

我有一个相关但截然不同的问题,关于调整由stat_summary创建的行组成的图例的顺序。换句话说,我目前并没有像前面的例子那样,比较从单个变量或两个变量中得出的值。更确切地说,我是在计算平均数

目前生成的图例按字母顺序排列:任何来源、同学、专业等。我想对图例进行重新排序,以便根据减少的截距值对项目进行排序,以使图表更易于阅读。最好的顺序是:任何消息来源、同学、教授、斯图。工人@支持中心、助教、员工、专业、其他教员

pmf0 <- ggplot(All2011QsGPASource.long, aes(x=ClassYear)) 
pmf1 <- pmf0 + stat_summary(aes(y=FamSuppAny,colour="Any Source"),fun.y=mean,geom="line", lwd=2)
pmf2 <- pmf1 + stat_summary(aes(y=FamClassmAny,colour="Classmate"),fun.y=mean,geom="line", lwd=2)
pmf3 <- pmf2 + stat_summary(aes(y=FamProfAny,colour="Professor"),fun.y=mean,geom="line", lwd=2)
pmf4 <- pmf3 + stat_summary(aes(y=FamStuWkrAny,colour="Stu. Worker @ Support Center"),fun.y=mean,geom="line", lwd=2)
pmf5 <- pmf4 + stat_summary(aes(y=FamTAAny,colour="Teaching Assistant"),fun.y=mean,geom="line", lwd=2)
pmf6 <- pmf5 + stat_summary(aes(y=FamStaffAny,colour="Staff"),fun.y=mean,geom="line", lwd=2)
pmf7 <- pmf6 + stat_summary(aes(y=FamMajorAny,colour="Major"),fun.y=mean,geom="line", lwd=2)
pmf8 <- pmf7 + stat_summary(aes(y=FamOthFacAny,colour="Other Faculty Member"),fun.y=mean,geom="line", lwd=2)
pmf9 <- pmf8 + theme(aspect.ratio=1) + ylab("Percentage") + xlab("Year Survey Taken") 
pmf10 <- pmf9 + scale_x_continuous(breaks=c(1,2,3,4),labels=c("First Year","Sophomore","Junior","Senior")) + xlab("Class Year") + ylab("Percentage") + scale_y_continuous(labels=percent)
pmf11 <- pmf10 + scale_colour_discrete("Specific Source of Support") + labs(title="Sources of Support Over Time - Familiar Assignment")
print(pmf11)

pmf0天哪,为什么要使用这么多的
stat\u summary
调用,而不是在ggplot之外汇总数据,并使用变量表示不同的颜色?在这一点上,如果可能的话,似乎最容易对图例重新排序。但是,当然,另一种方法是在ggplot之外进行计算,并生成替代数据框。我可能会做的是重新排序而不是选择。好吧,我感到困惑的原因是:(1)您链接到的问题是关于排序多个不同的图例,而不是一个图例中的级别,以及(2)控制图例顺序的方法是将该信息编码到一个因子中,然后改变其中的级别顺序。这是一种方法。我试图将对话与之前的讨论联系起来,这些讨论似乎导致了新版ggplot中新的guide_legend功能,我希望更熟悉这项工作的人能让我感觉到是否有可能使用这种方法重新排列图例。谢谢我不认为你可以,因为它只需要指定一次每个美学,在你的案件颜色。我想在这里帮助你,因为不管你想怎么做,你都不应该采取这种方法。最好在ggplot之外总结您的数据,并简单地使用因子级别来控制排序。(我很乐意为您提供更多的实际答案,但您未能提供一个可复制的示例;我无法访问您的数据框。)