1.6.5 图例
图例作为图表背景信息的重要部分,对图表的完整与正确表达尤为重要。R ggplot2的guide_colorbar()/guide_colourbar()函数用于调整连续变量的图例;guide_legend()函数用于离散变量的图例,也可以用于连续变量。
guides()函数将guide_colorbar和guide_legend两种图例嵌套进去,方便映射与处理,如guides(fill= guide_colorbar()),对多个图例共同处理的时候尤为有效。另外,我们也可以在scale_×××()度量中指定guide类型,guide ="colorbar"或guide ="legend"。
其中,尤为重要的部分是图例位置的设定,R ggplot2默认是将图例放置在图表的右边("right"),但是我们在最后添加的theme()函数中,用legend.position设定图例的位置。legend.position可以设定为"right"、"left"、"bottom"和"top"。
ggplot2绘图过程中,控制图例在图中的位置利用theme(legend.position)参数,该参数对应的设置为:"none"(无图例)、"left"(左边)、"right"(右边)、"bottom"(底部)、"top"(头部),legend.position也可以用两个元素构成的数值向量来控制,如c(0.9,0.7),主要是设置图例在图表中间所在的具体位置,而不是图片的外围。数值大小一般在0~1之间,超出数值往往导致图例隐藏。如果图例通过数值向量设定在图表的具体位置,那么最好同时设定图例背景(legend.background)为透明或者无的。图1-6-23使用的是theme_classic()内置的图表系统主题,使用theme()函数调整图例的具体位置。图1-6-23(a)所示图例的默认设定语句为:
图1-6-23 图例位置的调整
theme(legend.background = element_rect(fill="white"), legend.position="right")
上述语句表示将图例的背景设为白色填充的矩形,位置设定为图表的右边。图1-6-23(b)将图例的位置设定为图表内部的左上角,并将图例背景(legend.background)设置为无。其中c(0.2,0.8)表示图例的位置放置在图表内部X轴方向20%、Y轴方向80%的相对位置。
theme(legend.background = element_blank(), legend.position=c(0.2,0.8))