R Markdown调用source脚本后无法显示DiagrammeR图形结果
解决R Markdown中source脚本后DiagrammeR图形不显示的问题
以下是几种可行的解决方法,按优先级排序:
方法1:修改外部脚本,确保绘图对象被输出
在你的Gr01_-_QMOF.r脚本中,确保grViz生成的图形对象被显式打印或直接返回。示例如下:
library(DiagrammeR) # 直接绘制并输出DOT图 grViz(" digraph QMOF { node [shape=rectangle] A -> B; B -> C; } ")
如果你将图形赋值给变量,最后必须显式打印:
library(DiagrammeR) my_qmof_graph <- grViz(" digraph QMOF { # 你的DOT语法内容 } ") print(my_qmof_graph)
方法2:在R Markdown代码块中显式捕获并打印脚本返回的图形
若不想修改外部脚本,可在R Markdown的代码块中捕获source()返回的结果并打印:
# 调用脚本并获取返回的图形对象 graph_result <- source("Gr01_-_QMOF.r", local = knitr::knit_global())$value # 显式打印图形 print(graph_result)
方法3:检查代码块选项是否抑制了输出
确保你的R Markdown代码块没有设置隐藏图形的选项(如results='hide'、fig.show='hide')。保持选项默认,或显式启用图形显示:
```{r, fig.show='asis'} source("Gr01_-_QMOF.r", local = knitr::knit_global())
## 额外注意事项 - 若R Markdown输出格式为PDF,DiagrammeR的grViz图形需要额外转换为图片格式;HTML输出格式下按上述方法即可正常显示。 - 确认`DiagrammeR`包已正确安装,脚本中不要遗漏`library(DiagrammeR)`语句。 内容的提问来源于stack exchange,提问作者R Walser
相关产品推荐
相关产品推荐

