可视化学习笔记(七):ggplot2:图例设置


1、图例设定

1.1 移除图例

有多种方法可以移除一副图中的图例,主要为以下几种:

  1. 可以在几何对象中geom_xxx(show.legend=F)使用show.legend=F参数

  2. 使用guides(fill=F)函数及其参数

  3. 使用标度设置scale_fill_xx(guide=F)

    • 许多常用标度也可以用来设置


      可视化学习笔记(七):ggplot2:图例设置_第1张图片
      常用标度.PNG
  4. 使用系统主题theme(legend.position='none')

1.2 修改图例位置

使用theme(legend.position=...)即可

  • 通常指定位置的参数为'top'、'left'、'right'、'bottom'
  • 同时也可以为position参数指定坐标,让图形绘制于指定坐标区域

1.3 反转图例项目顺序

使用guides(fill=guide_legend(reverse=T))函数及参数即可反转图例的顺序


2、图例标题

2.1 修改图例标题

修改图例的办法有以下三种:

  1. 使用labs()函数,并对于图例属性的名称进行修改
p + labs(fill='')
  1. 可以通过标度scale_xx_xxx()函数中的name=''参数来指定
  2. 使用guides(fill=guide_legend(title=''))函数及参数来修改

2.2 修改图例标题外观

通过主题设定theme(legend.title= element_xxx()函数及其参数来设定

2.3 删除图例标题

使用2.1节中的第三个办法,使用title = NULL即可


3、图例标签

3.1 修改图例标签文本

修改图例中的标签文本只需要使用标度设置的labels参数即可

scale_xxx_xxx(labels = c(''))
  • 如果一个变量被分别映射到两个图形属性,则修改图例标签时必须同时修改两种标度中的标签

基本的图例标度函数

可视化学习笔记(七):ggplot2:图例设置_第2张图片
常用标度.PNG

3.2 修改图例标签外观

通过theme(legend.text = elment_xxx()函数及参数来设定

3.3 含多行文本的标签

labels参数中设定文本使,在文本中使用\n表示从此处另起一段

  • 但当出现多行文本时,会出现文本叠加的情况;
  • 因此需要使用theme()函数增加图例说明高度并减少各行的间距;
  • 还需要使用grid包中的unit()函数来指定高度
library(grid)
p + scale_fill_discrete(
  labels=c("Control", "Type 1\ntreatment","Type 2\ntreatment")) +
  theme(legend.text=element_text(lineheight=.8),
             legend.key.height=unit(1, "cm"))

你可能感兴趣的:(可视化学习笔记(七):ggplot2:图例设置)