控制ggplot2图例显示顺序 - Redux

时间:2013-07-24 20:31:12

标签: r ggplot2 legend legend-properties

去年七月,阿拉斯泰尔问了一个关于在ggplot2中订购传说的问题。

Controlling ggplot2 legend display order

关于调整由stat_summary创建的行组成的图例的顺序,我有一个相关但又截然不同的问题。换句话说,我目前没有比较从单个变量或两个变量中提取的值,就像前面的例子中的情况一样。相反,我正在绘制计算方法。

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

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)

我目前在Mac OS X 10.7.5中使用ggplot2 0.9.3.1,R版本3.0.1,并感谢@Kohske Takahashi在guide_legend上所做的出色工作。目前我可以看到一个反转传说现有顺序的选项,但我希望以不同的方式重新排序图例。

提前感谢您的帮助!

安德烈

0 个答案:

没有答案