【R绘图】ggplot2

熟悉R绘图的朋友肯定知道,在普通绘图中,图片的大小可以直接在png()和pdf()中指定,而绘图区大小则可以用par()中的mar或mai来指定。

​但是在ggplot2中,图片大小依然可以在png和pdf中设定,但是边界大小,par函数似乎就不奏效了。至今天探索,才发现原来这个参数隐藏在theme中,其名为plot.margin。

1)原图

pdf('test_0.pdf',width=4,height=4)

qplot(uempmed,unemploy,data=economics,geom='path')​

​dev.off()

图片如下:

默认边界值

​​2)第一次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​ + theme(plot.margin=unit(rep(1,4),'lines'))

微调整边界值

3)第二次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​+theme(plot.margin=unit(rep(3,4),'lines'))

大调边界值

比较上述3幅图片,可明显发现,随着边界参数值增大,绘图区与边界的距离不断增大,从而在图片上留出更多空白区域。

此外,plot.margin是否跟par(mar=...)​一样遵循下、左、上、右的控制顺序呢?各位可以敲下代码,稍稍一试。

(转载请注明出处:http://blog.sina.com.cn/adell898)​

熟悉R绘图的朋友肯定知道,在普通绘图中,图片的大小可以直接在png()和pdf()中指定,而绘图区大小则可以用par()中的mar或mai来指定。

​但是在ggplot2中,图片大小依然可以在png和pdf中设定,但是边界大小,par函数似乎就不奏效了。至今天探索,才发现原来这个参数隐藏在theme中,其名为plot.margin。

1)原图

pdf('test_0.pdf',width=4,height=4)

qplot(uempmed,unemploy,data=economics,geom='path')​

​dev.off()

图片如下:

默认边界值

​​2)第一次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​ + theme(plot.margin=unit(rep(1,4),'lines'))

微调整边界值

3)第二次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​+theme(plot.margin=unit(rep(3,4),'lines'))

大调边界值

比较上述3幅图片,可明显发现,随着边界参数值增大,绘图区与边界的距离不断增大,从而在图片上留出更多空白区域。

此外,plot.margin是否跟par(mar=...)​一样遵循下、左、上、右的控制顺序呢?各位可以敲下代码,稍稍一试。

(转载请注明出处:http://blog.sina.com.cn/adell898)​

熟悉R绘图的朋友肯定知道,在普通绘图中,图片的大小可以直接在png()和pdf()中指定,而绘图区大小则可以用par()中的mar或mai来指定。

​但是在ggplot2中,图片大小依然可以在png和pdf中设定,但是边界大小,par函数似乎就不奏效了。至今天探索,才发现原来这个参数隐藏在theme中,其名为plot.margin。

1)原图

pdf('test_0.pdf',width=4,height=4)

qplot(uempmed,unemploy,data=economics,geom='path')​

​dev.off()

图片如下:

默认边界值

​​2)第一次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​ + theme(plot.margin=unit(rep(1,4),'lines'))

微调整边界值

3)第二次调整边界参数plot.margin

qplot(uempmed,unemploy,data=economics,geom='path')​+theme(plot.margin=unit(rep(3,4),'lines'))

大调边界值

比较上述3幅图片,可明显发现,随着边界参数值增大,绘图区与边界的距离不断增大,从而在图片上留出更多空白区域。

此外,plot.margin是否跟par(mar=...)​一样遵循下、左、上、右的控制顺序呢?各位可以敲下代码,稍稍一试。

(转载请注明出处:http://blog.sina.com.cn/adell898)​

(0)

相关推荐