R: Titles cut in half with par()

2019-02-22 09:47发布

问题:

I have this figure:

require(corrplot)
par(oma=c(0,0,2,0), mfrow = c(1, 3))
for (country in c("Italy","Germany","Afghanistan")) {
  corrplot.mixed(cor(data.frame(v1=rnorm(40),
                                v2=rnorm(40),
                                v3=rnorm(40),
                                v4=rnorm(40),
                                v5=rnorm(40),
                                v6=rnorm(40),
                                v7=rnorm(40),
                                v8=rnorm(40)), use="pairwise.complete.obs"),
                 main=country)
}
par(mfrow = c(1, 1))

which produces titles cut in half:

Following this answer I set oma=c(0,0,2,0) but it does't affect the results. I am not sure which margin I should modify. I looked at ?par and modified "oma", "omd", "omi", "mai", "mar" with no result.

回答1:

I found that passing mar arguments to corrplot was effective:

    png(height=300,width=600);par(oma=c(0,0,2,0), mfrow = c(1, 3))
for (country in c("Italy","Germany","Afghanistan")) {
  corrplot.mixed(cor(data.frame(v1=rnorm(40),
                                v2=rnorm(40),
                                v3=rnorm(40),
                                v4=rnorm(40),
                                v5=rnorm(40),
                                v6=rnorm(40),
                                v7=rnorm(40),
                                v8=rnorm(40)), use="pairwise.complete.obs"),
                 main=country, mar=c(0,0,2,0))
};dev.off()