gridGraphics包由Paul Murrell编写,核心函数是grid.echo(),其目的是将graphics包中的图形转换并在grid绘图系统中重制,拆解为lines,polygon,segments,points,xlab和box等若干可在grid绘图系统中可修饰的组件。
以boxplot()为例,简述其运行原理。
boxplot(disp ~ cyl, data = mtcars)
通过grid.echo()拆分组件,并用grid.ls()查看。
library(gridGraphics)
grid.echo(prefix = "cp")
grid.ls()
###
cp-plot-1-polygon-1
cp-plot-1-segments-1
cp-plot-1-points-1
cp-plot-1-segments-2
cp-plot-1-segments-3
cp-plot-1-polygon-2
cp-plot-1-polygon-3
cp-plot-1-segments-4
cp-plot-1-points-2
cp-plot-1-segments-5
cp-plot-1-segments-6
cp-plot-1-polygon-4
cp-plot-1-segments-7
cp-plot-1-points-3
cp-plot-1-polygon-5
cp-plot-1-segments-8
cp-plot-1-points-4
cp-plot-1-segments-9
cp-plot-1-segments-10
cp-plot-1-polygon-6
cp-plot-1-bottom-axis-line-1
cp-plot-1-bottom-axis-ticks-1
cp-plot-1-bottom-axis-labels-1
cp-plot-1-left-axis-line-1
cp-plot-1-left-axis-ticks-1
cp-plot-1-left-axis-labels-1
cp-plot-1-xlab-1
cp-plot-1-ylab-1
cp-plot-1-box-1
grid包中的grid.edit()可对以上组件进行修饰。如
ps:使用par()布局即可。
grid.edit("cp-plot-1-polygon-1", gp = gpar(fill = "red"))
grid.edit("cp-plot-1-points-3", gp = gpar(col = "red"))
grid.edit("cp-plot-1-left-axis-ticks-1", gp = gpar(col = "red"))