在RStudio中使用knitr生成HTML时图像不显示的问题
问题:R Markdown生成HTML后不显示neuralnet的网络图
我写了下面这段R Markdown代码:
--- title: "testing" author: "jan" date: "10/06/2025" output: html_document ---
```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
library("neuralnet") network <- neuralnet(Species == "setosa" ~ Petal.Length + Petal.Width, iris, linear.output = FALSE) plot(network)
生成的HTML文件能正常生成,但里面看不到绘制的神经网络图像。我的环境是Mac系统,RStudio版本2025.05.1+513,R版本4.5.0。 --- ### 原因分析 `neuralnet`的`plot()`函数不是R标准绘图系统的常规输出,knitr渲染HTML时偶尔无法自动捕获它的绘图结果;另外Mac默认的Quartz图形设备,在处理这类非标准绘图时也可能出现捕获失败的情况。 ### 解决办法 试试下面几种方法: 1. **强制刷新图形设备** 在`plot(network)`后面加一行`dev.flush()`,强制让knitr捕获绘图: ```r ```{r echo=FALSE, message=FALSE} library("neuralnet") network <- neuralnet(Species == "setosa" ~ Petal.Length + Petal.Width, iris, linear.output = FALSE) plot(network) dev.flush()
2. **用ggneuron转成标准ggplot绘图** 如果第一种方法没用,可以用`ggneuron`把神经网络图转成ggplot对象,这种标准绘图肯定能被knitr识别: 先安装包: ```r install.packages("ggneuron")
再修改代码:
```{r echo=FALSE, message=FALSE} library("neuralnet") library("ggneuron") network <- neuralnet(Species == "setosa" ~ Petal.Length + Petal.Width, iris, linear.output = FALSE) ggneuron(network)
3. **更新neuralnet包** R 4.5.0是新版本,旧版`neuralnet`可能存在兼容性问题,更新后再试: ```r update.packages("neuralnet")
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

