0

去年 7 月,Alastair 提出了一个关于在 ggplot2 中排序图例的精心设计的问题。

控制 ggplot2 图例显示顺序

关于调整由 stat_summary 创建的行组成的图例的顺序,我有一个相关但独特的问题。换句话说,我目前并没有像前面的例子那样比较从单个变量或两个变量中提取的值。相反,我正在绘制计算的平均值。

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

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 上的出色工作。目前,我可以看到一个反转图例现有顺序的选项,但我希望以不同的方式重新排序图例。

预先感谢您的帮助!

安德烈亚

4

0 回答 0