ggplot2 调整绘图区域大小

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


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


1. 原图

library(ggplot2)
library(ggthemes)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour=factor(cyl))) + guides(color=F)
p <- p + theme_solarized(light=FALSE) + scale_colour_solarized('blue')
ggsave("test0.png", units="in", dpi=300, width=4, height=4, device="png")
9d8e64f3-2a41-483c-ab84-f66f84cae79c.png

2. 第一次调整边界参数

library(ggplot2)
library(ggthemes)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour=factor(cyl))) + guides(color=F)
p <- p + theme_solarized(light=FALSE) + scale_colour_solarized('blue')
p <- p + theme(plot.margin=unit(rep(1,4),'cm'))
ggsave("test1.png", units="in", dpi=300, width=4, height=4, device="png")
3df500e8-a30f-44ac-b260-9cc3b6e65ff1.png


3. 第二次调整边界参数

library(ggplot2)
library(ggthemes)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(colour=factor(cyl))) + guides(color=F)
p <- p + theme_solarized(light=FALSE) + scale_colour_solarized('blue')
p <- p + theme(plot.margin=unit(rep(3,4),'cm'))
ggsave("test2.png", units="in", dpi=300, width=4, height=4, device="png")
c9dccacd-5b2a-428c-85e4-7b5ca93bdbc0.png

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


5cae4564-e7c3-407e-9b70-ec518494bca5.png — END—


693380f4-60f0-471e-96ff-53b243d81f70.png


eb87bcc2-edc7-469b-8f59-0ab2a6af77d9.gif 戳原文,更有料!

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2020-05-23 15:24  章鱼猫先生  阅读(1077)  评论(0编辑  收藏  举报