如何在多个多方面ggplot2图形中实现相同的方面大小和比例?

NoBackingDown

我有一系列的ggplot2图形,这些图形的水平数恒定,但垂直面数不同。我想将图形另存为横向a4格式的.pdf。

但是,我不知道如何实现相同比例的构面。如果我尝试手动调整它,widthheight针对不同数量的垂直构面进行更改,则各图之间的比例会有所不同,即,我得到的点大小和线宽也不同。

本质上,对于具有可变数量(垂直)构面的图,如何实现相同的构面大小和比例?

这是一个例子:

df <- expand.grid(a = 1:2, b = 1:5, x = 1:10)
df$y <- df$x
plot <- ggplot(data = df, mapping = aes(x = x, y = y)) +
            geom_point()
plot1 <- plot + facet_grid(facets = "a ~ b")
plot2 <- plot + facet_grid(facets = ". ~ b")

ggsave(filename = "./figures/plot1.pdf", plot = plot1,
   height = 210, width = 297, units = "mm")

ggsave(filename = "./figures/plot2.pdf", plot = plot2,
   height = 210, width = 297, units = "mm")
浸礼会

我使用此代码将面板尺寸设置为绝对值,也许在这里有帮助

set_panel_size <- function(p=NULL, g=ggplotGrob(p), file=NULL, 
                           margin = unit(1,"mm"),
                           width=unit(4, "cm"), 
                           height=unit(4, "cm")){

  panels <- grep("panel", g$layout$name)
  panel_index_w<- unique(g$layout$l[panels])
  panel_index_h<- unique(g$layout$t[panels])
  nw <- length(panel_index_w)
  nh <- length(panel_index_h)

if(getRversion() < "3.3.0"){

   # the following conversion is necessary
   # because there is no `[<-`.unit method
   # so promoting to unit.list allows standard list indexing
   g$widths <- grid:::unit.list(g$widths)
   g$heights <- grid:::unit.list(g$heights)

   g$widths[panel_index_w] <-  rep(list(width),  nw)
   g$heights[panel_index_h] <- rep(list(height), nh)

} else {

   g$widths[panel_index_w] <-  rep(width,  nw)
   g$heights[panel_index_h] <- rep(height, nh)

}

  if(!is.null(file))
    ggsave(file, g, 
           width = convertWidth(sum(g$widths) + margin, 
                                unitTo = "in", valueOnly = TRUE),
           height = convertHeight(sum(g$heights) + margin,  
                                  unitTo = "in", valueOnly = TRUE))

  invisible(g)
}

print.fixed <- function(x) grid.draw(x)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用多个方面播放 ggplot2 的图形

使用ggplot2的多个方面

U2F多方面AppID在Chromium v40.x中不起作用

如何在ggplot2中的方面之间强制使用常见的x轴标签/限制?

如何在ggplot2中的各个方面注释文本

如何在交互绘图(ggplot2;交互)中的各个方面注释文本?

多方面的facet_grid变得不可读/增加地块的大小?

具有多方面应用ID的U2F

在Java中传递对象,并试图改变他们在许多方面

如何在R中的ggplot2中向条形图方面添加百分比?

ggplot2问题与方面和关闭剪辑

ggplot2中每个方面的注释组均值

ggplot2中每个方面的不同功能曲线

使用ggplot2将方面标签中的新行和plotmath合并

在ggplot2直方图中的每个方面选择不同的中断(不是比例问题)

ggplot2:方面标签模糊

如何在ggplot2中指定图形大小而与轴标签无关

在ggplot2中,使用多个自变量在数据中的各个方面生成误差线

如何在R中的ggplot的每个方面添加R2?

通过ggplot中的多个方面进行回归

天蓝色搜索。如果我有很多方面怎么办

获取不存在其他模型的多方面关系的对象?

使用x和y轴在ggplot2中的日志缩放方面有所不同

如何在Sitecore方面实现对象集合?

如何在sql中从关系的多个方面正确查询?

如何在ggplot2中为树图的标签文本设置相同的大小

ggplot2:方面:不同的轴限制和自由空间

ggplot2和Shiny:如何使用图形大小缩放图例的大小?

使用“gridExtra”和多个方面并排绘制图形

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

  3. 3

    创建Windows Phone 8应用并将其连接到数据库的最佳方法(最好是SQL Server)

  4. 4

    为什么Java中的System.out.println()打印到控制台?

  5. 5

    卷曲函数无法解析来自bash中变量的代理

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    设置与Apache POI Excel表散点图标记图标的颜色

  8. 8

    将Qt Pyside2与asyncio await语法一起使用?

  9. 9

    崇高的文字+蟒蛇的蟒蛇

  10. 10

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  11. 11

    OpenJDK的和AdoptOpenJDK的区别

  12. 12

    大型数据集缓存到Spark内存中时,“超出了GC开销限制”(通过sparklyr和RStudio)

  13. 13

    “执行测试CMAKE_HAVE_LIBC_PTHREAD”失败实际上是什么意思?

  14. 14

    使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

  15. 15

    React中的ForwardRefExoticComponent和ForwardRefRenderFunction有什么区别?

  16. 16

    猫鼬查找结果,然后将字段替换为findOne

  17. 17

    如何降级Google Colab的Torch版本

  18. 18

    Keras提前停止回调错误,val_loss指标不可用

  19. 19

    如何避免VSCode中的“导入路径不能以.ts扩展名结尾”错误?

  20. 20

    Nuxt.JS:如何在页面中获取路由URL参数

  21. 21

    是否有为什么会AccessibilityManager.sInstance导致内存泄漏的一个原因?

热门标签

归档