【问题标题】:Panel with different graphic packages figures具有不同图形封装图形的面板
【发布时间】:2016-03-03 12:10:29
【问题描述】:

我希望问题得到正确陈述。出于教学目的,我想创建一个 knitr 文档,其中 R 基础图形系统的输出和 Lattice 包的输出在面板中进行比较。 考虑一个数字向量:

```{r dataload}
e2 <- c(72, 79, 81, 80, 63, 62, 89, 90, 50, 78, 87, 97, 55, 69, 97, 87, 
        88, 99, 76, 78, 65, 77, 88, 90, 81)
```

我尝试使用以下代码生成一个面板:

```{r plots}
par(mfrow = c(1,2))    #Set 1 row 2 columns panel
hist(e2)               #Base graphic histogram on the left
histogram(~e2)         #Lattice histogram on the right
```

但 Lattice 直方图会关闭面板,删除基本图形直方图。

预期结果:

面板应在一侧报告基本图,在另一侧报告格图,类似于这个非常漂亮的post 的产品。不幸的是,博客没有解释结果是如何产生的,我也没有找到关于这个问题的更多信息。 我可以轻松生成两个不同的图像,但我认为面板表示会产生更漂亮的可比较结果

非常感谢您的耐心等待。

【问题讨论】:

  • 可能相关:combine lattice plot and standard R plot。但是,对于这个特定问题,两个并排放置的独立数字可能是一种解决方法。所需的输出格式是什么?
  • 根据您好心建议的材料,lattice 和基本系统不兼容。基本图形和网格图形之间的兼容性存在限制(点阵建立在后者之上)。因此,我认为我不能不尝试不同的方法。非常感谢您的帮助。
  • 好吧,根据article Mark Difford 的链接,将晶格图和基图结合起来并非不可能。但在您的情况下,最直接的解决方案是生成两个单独的数字。
  • @CL。我同意。可能是努力不值得结果。

标签: r plot knitr lattice


【解决方案1】:

正如here on the R mailing list 所讨论的,lattice 和基本 R 图形的兼容性是有限的。 this entry 中引用的 article 表明它可以完成,但有一些复杂性。然而,这种简单的情况并不值得努力,因为更简单的解决方案是生成两个独立的图并将它们并排放置。

这就引出了一个新问题:如何在 Rmarkdown 中并排放置两个数字? 有一些答案解释了如何将数字与knitr 并排放置,但大部分都是请参阅 LaTeX/RNW 文档。 this answer 中介绍了 Rmarkdown 的可能解决方案,但我想建议另一种不涉及添加自定义 CSS 的简单方法:

```{r mychunk, fig.show='hide'}
library(knitr)
library(lattice)
hist(iris$Sepal.Length)
histogram(iris$Sepal.Length)
```

base|lattice
-------------------------------|-------------------------------:
`r include_graphics(paste0(opts_chunk$get("fig.path"), "mychunk-1.png"))`|`r include_graphics(paste0(opts_chunk$get("fig.path"), "mychunk-2.png"))`

chunk option fig.show = 'hide' 禁止自动打印图形。无论如何都会生成这些图形,然后可以使用include_graphics 结合使用opts_chunk$get("fig.path") 获得的图形目录的路径以及knitr 将“图像命名为fig.path-label-i”这一事实插入其中i 从1 递增"(来源:上一个链接)。

并排布局是使用Pandoc pipe_table 实现的。这很方便,因为可以通过简单地在第二行添加或删除破折号来控制图像的宽度。

注意:在 HTML 文档中,除非 YAML option self_containedfalse,否则使用数据 URI 而非文件包含图像。上述解决方案仍然有效,因为在knitr 将 RMD 文件处理为 MD 时,图像或尚未转换为数据 URI;这发生在 Pandoc 从 MD 文件生成 HTML 的下一步中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多