当RStudio绘图窗格处于活动状态时,ggsave()中绘图的缩放比例不同
我无法提供一个可复制的示例,但我想询问当RStudio绘图窗格处于活动状态时,ggsave()中绘图的缩放比例不同,r,plot,ggplot2,rstudio,R,Plot,Ggplot2,Rstudio,我无法提供一个可复制的示例,但我想询问ggsave()函数的一个奇怪行为:我遇到了以下情况: 我创建了一个ggplot,通过将一个plot分配给一个变量,比如说p 我对p进行评估,并且-应该如此-绘图显示在RStudio的绘图窗格中 我的下一个调用是ggsave(plot=p,filename=“plot.pdf”),绘图是 写入plot.pdf,R为我提供控制台上写入的绘图的尺寸 奇怪的是:当RStudio绘图窗格处于活动状态时(即RStudio图形设备处于打开状态),步骤3中由ggsave(
ggsave()
函数的一个奇怪行为:我遇到了以下情况:
p
p
进行评估,并且-应该如此-绘图显示在RStudio的绘图窗格中ggsave(plot=p,filename=“plot.pdf”)
,绘图是
写入plot.pdf,R为我提供控制台上写入的绘图的尺寸ggsave()
写入的绘图尺寸与没有打开RStudio图形设备时的绘图尺寸不同。因此,已写入绘图的缩放被取消。换句话说:步骤3根据步骤2的执行产生不同的结果。有人知道为什么会这样吗?我认为ggsave()
完全独立于任何RStudio设备。或者这只发生在我的机器上
这是我的sessionInfo()
:
扩大安德烈·科利亚丁的上述评论 从ggsave()文档的宽度、高度以单位(“英寸”)打印大小, “厘米”或“毫米”)。如果未提供,则使用当前图形的大小 装置。” 如果我们深入研究
ggsave
背后的代码,会有一段代码说:
if (any(is.na(dim))) {
if (length(grDevices::dev.list()) == 0) {
default_dim <- c(7, 7)
}
else {
default_dim <- grDevices::dev.size() * scale
}
...
if(任何(is.na(dim))){
if(长度(grDevices::dev.list())==0){
ggsave()
documentation'宽度、高度打印大小的默认值(单位为英寸、厘米或毫米)。如果未提供,则使用当前图形设备的大小。'aah!非常感谢…我没有充分阅读文档。感谢您对上述注释进行扩展。这完全有意义!
if (any(is.na(dim))) {
if (length(grDevices::dev.list()) == 0) {
default_dim <- c(7, 7)
}
else {
default_dim <- grDevices::dev.size() * scale
}
...