【问题标题】:Knitr changes Image SizeKnitr 更改图像大小
【发布时间】:2017-12-14 08:44:16
【问题描述】:

当使用 RMarkdown + Knitr 对我的代码/绘图进行 HTML 输出时,绘图图像始终在 RStudio 中按预期显示,并在块选项中指定正确的宽度/高度大小,但如果我随后使用 Knitr 放置所有内容在 HTML 文档中,所有绘图都被调整为看起来更小的默认值。

在新选项卡中分别查看每个图会根据需要显示它们的大尺寸,但为什么不能这样显示它们在 HTML 中的方式。我可以为此更改任何设置吗?

【问题讨论】:

  • 你能证明一个例子 .Rmd 其他人可以用它来重现这个问题吗?
  • @Peter 当您将 Knit-r 转换为 HTML(和 PDF)时,任何具有显着大图的代码块都会被调整大小。例如。当在 rmarkdown 中内联运行时,此代码块图很大,但会缩小并变成 HTML {r echo=FALSE, fig.width=14, fig.height=9} ggplot(mpg, aes(x=year, y=cyl))+geom_point()

标签: r knitr r-markdown


【解决方案1】:

fig.widthout.width 之间存在差异,fig.heightout.height 之间也存在差异。 fig.* 控制保存的图形的大小,out.* 控制图像在输出中的缩放方式。

例如,以下 .Rmd 文件将生成两次相同的图形,但显示的宽度和高度不同。

---
title: "Example graphic"
---

```{r echo = FALSE, fig.width = 14, fig.height = 9, out.width = "588", out.height = "378"}
library(ggplot2)
ggplot(mpg, aes(x = year, y = cyl)) + geom_point()
```

```{r echo = FALSE, fig.width = 14, fig.height = 9, out.width = "1026", out.height = "528"}
library(ggplot2)
ggplot(mpg, aes(x = year, y = cyl)) + geom_point()
```

【讨论】:

  • 那么out.* 是像素吗?
  • 默认,是的,out.* 以像素为单位,但是,您不限于像素。 out.height="40%" 对 html 有效,out.width = 0.48\\textwidth 对 LaTeX 有效。更多详情可以在knitr options找到。
  • 实际上,我只是重试了这个以像素为单位的out.height 的 HTML 输出,它仍然将图像的大小限制在一定的高度/宽度。即使有大量的像素,它似乎也限制了它.....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多