gpt4 book ai didi

r - 在多个 block 上拆分绘图调用

转载 作者:行者123 更新时间:2023-12-04 10:16:51 24 4
gpt4 key购买 nike

我正在写一个情节的解释,我基本上将在第一个块中创建该图,然后描述该输出,并在第二个块中添加一个轴。

然而,似乎每个块都强制一个新的绘图环境,所以当我们尝试使用 axis 运行块时会出错。独自的。观察:

---
output: html_document
---

```{r first}
plot(1:10, 1:10, xaxt = "n")
```

Look, no x axis!

```{r second}
axis(side = 1, at = 1:10)
```

Error in axis(side = 1, at = 1:10) : plot.new has not been called yet Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> axis Execution halted



显然,这是具有相同输出的有效解决方法:
---
output: html_document
---

```{r first}
plot(1:10, 1:10, xaxt = "n")
```

Look, no x axis!

```{r second, eval = FALSE}
axis(side = 1, at = 1:10)
```
```{r second_invisible, echo = FALSE}
plot(1:10, 1:10, xaxt = "n")
axis(side = 1, at = 1:10)
```

但这不太理想(重复的代码,必须对情节进行两次评估等)

This问题是相关的——例如,我们可以排除 second块和集 echo = -1second_invisible块(这在我的应用程序中也不起作用,但我不想在这里使事情过于复杂)

有没有像 dev.hold 这样的选项我们可以发送到第一个块?

最佳答案

您可能会考虑使用 recordPlot

---
output: html_document
---

```{r first}
plot(1:10, 1:10, xaxt = "n")
x<-recordPlot()
```

Look, no x axis!

```{r second}
replayPlot(x)
axis(side = 1, at = 1:10)

```

来源:

R: Saving a plot in an object

R plot without showing the graphic window

https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/recordplot.html <- 请注意此处有关 ggplot2 的免责声明

关于r - 在多个 block 上拆分绘图调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37189068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com