ggplot2精雕细琢

简介

本文主要是介绍ggplot2的主题设置,通过它可对数据之外的图形外观进行控制。

主题

主题的控制包括标题、坐标轴标签、图例标签等文字调整,以及网格线、背景、轴须得颜色搭配。

ggplot2的策略是:绘图时,首先确定数据如何展示,然后再用主题系统对细节进行渲染。

内置主题

主题设置有两种方式:

  • 全局性设置:theme_set(theme_grey())或theme_set(theme_bw())。theme_set()返回先前的主题,可储存以备后用。
  • 局部性设置:只改变单个图形的主题,qplot(…) + theme_grey()。局部设置将会覆盖默认的全局性设置。

主题元素和元素函数

内置元素函数有四个基础类型:文本(text)、线条(lines)、矩形(rectangles)、空白(blank)。

  • element_text()绘制标签和标题,可控制字体的family,face,colour,size,hjust,vjust,angle,lineheight。下面给出例子:
  • element_line()控制线条或线段,该元素函数可控制colour,size,linetype。
  • element_rect()绘制主要供背景使用的矩形。可以控制填充颜色(fill)和边界的colour,size,linetype。
  • element_blank()表示空主题,即对元素不分配相应的绘图空间。

自定义标度和几何对象

为保证新主题的整体连贯性,可能需要调整一些标度和几何对象的默认设置。

标度

如果需要改变默认标度的显示方法,请重新定义或者用ggplot2中已经定义的可选方法覆盖控制相应图形属性的标度函数。该函数的命名方法通常是scale_aesthetics_continuous或者scale_aesthetics_discrete,请将函数命名中的aesthetics替换成相应的图形属性,比如color,fill,size等等。给出例子:

p <- qplot(mpg, wt, data = mtcars, colour = factor(cyl))
p

id

scale_colour_discrete <- scale_colour_brewer
p

id

几何对象和统计变换

下面例子展示了如何改变默认颜色和将默认直方图改变成密度直方图:

update_geom_defaults("point", aes(colour = "darkblue"))
update_stat_defaults("bin", aes(y = ..density..))

存储输出

主要使用ggsave()来存储当前图形。

参考文献

[1][ggplot2:数据分析与图形艺术]