1

我正在尝试使用 R 包 knitr 创建 HTML 文件,但我发现整个体验非常困难,可能是因为在不使用 LaTeX 时(并且当一个人不知道 Sweave 时)文档很少。具体问题是这样的:

我希望在 HTML 文件中生成两个相似的图表,但每个图表的高度必须不同。所以这是我的 RHTML 文件:

<!DOCTYPE html>
<html>
<head>
  <title>TEST</title>
</head>
<body>



<!--begin.rcode
opts_chunk$set(echo=FALSE, dpi=96, fig.width=9, fig.height=8, dev="png")
  print("Width 9, height 8")
  plot(rnorm(100), col="orange")
end.rcode-->

<hr> 

<!--begin.rcode
opts_chunk$set(echo=FALSE, dpi=96, fig.width=9, fig.height=12, dev="png")
  print("Width 9, height 12")
  plot(rnorm(100), col="purple")
end.rcode-->

<hr>

</body>
</html>

如您所见,两个(简单)图必须具有相同的宽度(9)但不同的高度(8 然后 12)。这在 R 中非常简单,但 knitr 似乎希望保持纵横比相同。这是两个绘图输出:

在此处输入图像描述

在此处输入图像描述

如您所见,较低的没有我想要的纵横比,它们是不同的宽度。

另外,我在我的 html 文件的顶部得到了所有这些块输出,我认为我用 echo=FALSE 抑制了这些输出......

在此处输入图像描述

我该如何解决这一切?opts_chunk$set 是否只设置了某种全局选项?如果我想在每次输出新图表时重置选项怎么办?以及如何抑制所有knitr 包输出?

4

1 回答 1

2

我认为这与反复设置有关,opts_chunk但我不知道为什么它不应该按照你想要的方式工作。无论如何,这是一个工作示例。我不会发布结果以节省空间,但它看起来像你想要的 - 尺寸得到尊重。

<!DOCTYPE html>
<html>
<head>
  <title>TEST</title>
</head>
<body>

<!--begin.rcode Setup, echo = FALSE
  opts_chunk$set(echo=FALSE, dpi=96, fig.width=9, fig.height=8, dev="png")
end.rcode-->

<!--begin.rcode Fig1
  print("Width 9, height 8")
  plot(rnorm(100), col="orange")
end.rcode-->

<hr> 

<!--begin.rcode Fig2, fig.width=9, fig.height=12
  print("Width 9, height 12")
  plot(rnorm(100), col="purple")
end.rcode-->

<hr>

</body>
</html>
于 2013-07-28T18:15:12.403 回答