我尝试过(徒劳)在Rmarkdown中使用ggplot生成一个图表。代码如下:
```{r,echo=FALSE}
#fig.width=12,fig.height=6
panel2$PlotSize<-round(log(panel2$BSFA0200),0)- min(round(log(panel2$BSFA0200),0))+1# set size of dots
panel2$PlotSize[panel2$PlotSize==-Inf]<-NA
panel2$PlotColour<-ifelse(panel2$PlotSize<7,1,panel2$PlotSize)
panel2$PlotSize<-as.factor(panel2$PlotSize)
panel2$PlotColour<-as.factor(panel2$PlotColour)
g1<-ggplot(data=panel2,aes(x=NFR,y=PROF7*100,size=PlotSize,colour=PlotSize))+ geom_point()
g1
在编结这工程罚款,但当执行一个Rmd文件(无论是作为html或pdf)我总是得到这个错误消息
processing file: 1Profti_model.Rmd
|.. | 4%
ordinary text without R code
|..... | 8%
label: setup (with options)
List of 1
$ include: logi FALSE
|........ | 12%
ordinary text without R code
|.......... | 15%
label: unnamed-chunk-1 (with options)
List of 3
$ echo : logi FALSE
$ warning: logi FALSE
$ message: logi FALSE
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
Loading required package: zoo
Attaching package: 'zoo'
The following objects are masked from 'package:base':
as.Date, as.Date.numeric
|............ | 19%
inline R code fragments
|............... | 23%
label: unnamed-chunk-2 (with options)
List of 1
$ echo: logi FALSE
|.................. | 27%
ordinary text without R code
|.................... | 31%
label: unnamed-chunk-3 (with options)
List of 1
$ echo: logi FALSE
Quitting from lines 98-109 (1Profti_model.Rmd)
Error in png(..., res = dpi, units = "in") : unable to start png() device
Calls: ... in_dir -> plot2dev -> do.call -> -> png
In addition: Warning messages:
1: Removed 55 rows containing missing values (geom_point).
2: In png(..., res = dpi, units = "in") :
unable to open file '1Profti_model_files/figure-html/unnamed-chunk-3-1.png' for writing
3: In png(..., res = dpi, units = "in") : opening device failed
Execution halted
我也试着解决这个问题,将图表保存在png中,然后将其作为图片加载。也没有结果(参见[Error with loading png in Rmd file](https://stackoverflow.com/questions/34136738/error-with-loading-png-in-rmd-file))
谢谢你的帮忙
更新:
根据你们中一些人的建议,我添加了一个不同的块名,并在我的数据上复制了Davit的代码(见更新的代码)。不幸的是,错误仍然存在。有趣的是,knitr不能写png,但可以在代码所在的同一个文件夹中写csv(我测试了它)。
最后,我测试了在我的C驱动器上运行同样的代码,(惊喜!)它工作正常。然而,这对我来说不是很有效,因为我不想依赖于特定的机器,我需要与其他人分享这项工作(所以网络驱动器是必须的)。此外,所有其他包/代码在网络驱动器上都能正常工作,只有这个png()似乎是一个问题。
谢谢你的帮助!---标题:新文档作者:我的输出:html_document ---
#.libPaths("D:/xxxx/packages")
require(ggplot2)
panel2 <- data.frame(BSFA0200 = rnorm(100),
NFR = rnorm(100),
PROF7 = rnorm(100))
panel2$PlotSize<-round(log(panel2$BSFA0200),0)- min(round(log(panel2$BSFA0200),0))+1# set size of dots
panel2$PlotSize[panel2$PlotSize==-Inf]<-NA
panel2$PlotColour<-ifelse(panel2$PlotSize<7,2,panel2$PlotSize)
write.csv(panel2[1:100,c('BSFA0200',"NFR","PROF7")],file="test.csv")
g1 <- ggplot(data = panel2,
aes(x = NFR,
y = PROF7 * 100,
size = factor(PlotSize),
colour = factor(PlotSize)
))
g1 + geom_point()
错误输出:
Loading required package: ggplot2
Quitting from lines 9-32 (test.Rmd)
Error in png(..., res = dpi, units = "in") : unable to start png() device
Calls: ... in_dir -> plot2dev -> do.call -> -> png
In addition: Warning messages:
1: Removed 35 rows containing missing values (geom_point).
2: In png(..., res = dpi, units = "in") :
unable to open file 'test_files/figure-html/prova-1.png' for writing
3: In png(..., res = dpi, units = "in") : opening device failed
Execution halted
我的knitr版本是1.11(应该是最新的),R版本是3.2.2
R.Version()
$platform
[1] "i386-w64-mingw32"
$arch
[1] "i386"
$os
[1] "mingw32"
$system
[1] "i386, mingw32"
$status
[1] ""
$major
[1] "3"
$minor
[1] "2.2"
$year
[1] "2015"
$month
[1] "08"
$day
[1] "14"
$svn rev
[1] "69053"
$language
[1] "R"
$version.string
[1] "R version 3.2.2 (2015-08-14)"
$nickname
[1] "Fire Safety"
6条答案
按热度按时间ao218c7q1#
我也收到了这个消息。我的问题是文件路径太长。我的R markdown文件在太多的子文件夹中,并且我的R markdown文件的名称太长。一旦我减少了文件路径的长度,问题就解决了。我希望这对你有用。
rqcrx0a62#
我曾经遇到过同样的问题。下面的代码可以工作。你要么有错误的头,要么没有调用包:很难说,因为你没有提供这些信息。另外,请下次发布示例数据。
这里是完整的代码,工作(至少对我来说)。如果它不运行在您的机器上,张贴您的数据和完整的Rmd脚本,我会尽力帮助。
v9tzhpje3#
我也收到了这个错误;我通过将代码移动到它自己的块中来生成令人不快的图形来解决它。
hl0ma9xz4#
我最近遇到了类似的问题。在我的情况下,问题是防病毒软件阻止**
Rscript.exe
**,而它试图在编织时处理文件,并且没有创建PNG文件。所以有时候暂时禁用防病毒并检查是否解决了问题是有用的。ssgvzors5#
我也遇到过同样的错误。我知道这是与路径有关的问题,但无法解决它。查看这里的评论,我尝试关闭软件并重新打开它。它很快就工作了。如果这对某人有帮助的话!
htrmnn0y6#
对我来说,这个错误发生在使用distill r包和jekyl渲染我的页面之后。我没有机会检测原因。但是在阅读this issue here之后,我解决了它。显然,jekyll是由于“
Invalid byte sequencece UTF-8...
“导致页面构建失败的主要原因。在我的网站根目录中添加一个空的.nojekyll
文件后,这个问题自动解决了。只需打开一个文本编辑器,将emty文件保存为.nojekyll
,并将pushyour更改保存到github。祝你好运。