【问题标题】:Increasing the size of axis labels in KnitR with R Markdown使用 R Markdown 增加 KnitR 中轴标签的大小
【发布时间】:2014-03-04 00:31:30
【问题描述】:

在带有 R Markdown 的 KnitR 中,我可以使用 dev.args=list(pointsize=18)pointsize 参数传递给图形设备。

这会增加绘图中点的大小,以及绘图周围的空间量,但它似乎不会影响轴标签的大小。看来我也需要使用par(cex.axis=1.5, cex.lab=1.5)之类的东西。

这和预期的一样吗?

以下是生成图像的三个示例代码块:

首先是默认值:

```{r fig1}
x <- rnorm(100)
y <- 2*x + rnorm(100)
plot(x,y)
```

现在使用dev.args=list(pointsize=18)

```{r fig2, dev.args=list(pointsize=18)}
x <- rnorm(100)
y <- 2*x + rnorm(100)
plot(x,y)
```

现在也使用par(cex.axis=1.5, cex.lab=1.5)

```{r fig3, dev.args=list(pointsize=18)}
par(cex.axis=1.5, cex.lab=1.5)
x <- rnorm(100)
y <- 2*x + rnorm(100)
plot(x,y)
```

【问题讨论】:

  • 我猜这很像this question,答案是:使用par(cex.blah)
  • 你也可以使用更简洁的调用plot(x, y, cex.axis = 1.5, cex.lab = 1.5)

标签: r graphics knitr


【解决方案1】:

您可以考虑矢量图而不是光栅图形,而不是无休止地弄乱par(cex.blah)。例如,您可以使用 SVG 设备,并在不损失质量的情况下缩放绘图。

```{r fig4, dev='svg', fig.width=6, fig.height=6, out.width='600px'}
x <- rnorm(100)
y <- 2*x + rnorm(100)
par(mar = c(4, 4, .1, .1))
plot(x,y)
```

更新:对于使用png 设备的原始问题,pointsize 参数未传递给录制设备。我在development version (>= v1.5.22) 中有fixed 的问题。

【讨论】:

  • 我喜欢这个建议。但我想我真正的问题是为什么 dev='png'dev.args=list(pointsize=18) 在 R 中的行为与 png("file.png", pointsize=18) 不同?
  • 是否有关于 R markdown 的详细参考,我可以在其中找到所有这些选项,例如dev.args=list(pointsize=18)。我只是从各种 SO 问题中发现 rmarkdown。我在 rstudio 看过备忘单,但这对于初学者来说是不够的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 2013-07-31
相关资源
最近更新 更多