You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 19:53:15