可视化学习笔记(七):ggplot2:图例设置
2018-02-07 本文已影响8人
100gle
1、图例设定
1.1 移除图例
有多种方法可以移除一副图中的图例,主要为以下几种:
-
可以在几何对象中
geom_xxx(show.legend=F)
使用show.legend=F
参数 -
使用
guides(fill=F)
函数及其参数 -
使用标度设置
scale_fill_xx(guide=F)
-
许多常用标度也可以用来设置
常用标度.PNG
-
-
使用系统主题
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 修改图例标题
修改图例的办法有以下三种:
- 使用
labs()
函数,并对于图例属性的名称进行修改
p + labs(fill='')
- 可以通过标度
scale_xx_xxx()
函数中的name=''
参数来指定 - 使用
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(''))
- 如果一个变量被分别映射到两个图形属性,则修改图例标签时必须同时修改两种标度中的标签
基本的图例标度函数
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"))