ggsave 不能很好地导出 ggarrange 图

问题描述 投票:0回答:1

我想将

ggarrange
对象导出为
.jpg
或带有
.tiff
dpi=300
,使用
"mm"
单位,宽度为
107
毫米。

不幸的是,当使用 ggsave 时,我很难获得所需的输出,使用“mm”单位时每个尺寸都不同。

所需的输出(尺寸真实的输出)

enter image description here

当前输出(尺寸不正确)

enter image description here

可能文本尺寸对于输出而言太大。

请找到一个可重现的示例

library(ggplot2)
library(ggpubr)

##### Initiating data
tmpDf <- data.frame(values1=1:12,
                    values2=rev(101:112),
                    group=rep(c("I", "II", "III"), 4))

##### Initiating plot
tmpPlot <- 
  ggplot(data=tmpDf, aes(x=values1, y=values2, color=group)) + 
  geom_point() + 
  ggtitle("Title") + 
  theme_minimal() + 
  theme(legend.position="bottom",
        axis.title.y=element_text(angle=0, vjust=0.5),
        plot.caption=element_text(hjust=0),
                     plot.title.position="plot", 
                     plot.caption.position="plot")

##### Initiating a group of plots
tmpPlotsGrouped <- 
  ggarrange(
    tmpPlot,
    tmpPlot,
    tmpPlot,
    nrow=1, ncol=3, widths=c(1, 1, 1))

##### Export as a jpg
ggsave(file="myPath/plotName.jpg", plot=tmpPlotsGrouped,
       units="mm", width=107, height=50, dpi=300)
r ggplot2 ggsave
1个回答
0
投票

为了使屏幕上看到的内容与绘图面板或缩放相匹配,请将 dpi 设置为显示器的 ppi,并相应地调整大小。

我想要一张 107x50mm、300 dpi 的图像,即

> c(107,50)/25.5*300
[1] 1258.8235  588.2353

以像素为单位

为了使其与我在绘图缩放中看到的内容相匹配(窗口缩放到所需的大小),我需要使用

ggsave(file="myPath/plotName.jpg", plot=tmpPlotsGrouped, scale=1,
       units="px", width=1259, height=588, dpi=105)
© www.soinside.com 2019 - 2024. All rights reserved.