Plot() error when using REngine.Rserve

a 夏天 提交于 2019-12-18 07:12:34

问题


I'm now work on a project which wants to use org.rosuda.REngine.Rserve to use facilities of R by C#. I have a particular problem that when I run the following code in C# client side:

c.eval("pdf(file=\"plots.pdf\", width=11, height=8.5)");
c.eval("plot(1,2)");

An error occour which said

Error in plot.new():cannot open file '', reason No such file or directory

But I checked that the file "plots.pdf" has already been created successfully by "pdf.." function. In R semantics, the successive plot() will output figure to the active device opened by the "pdf(...)" function, i.e. "plots.pdf" this time. But I'm very confused that why the error indicated that the file is ''. I use R-2.15.0 and Rserve-1.7.0 in linux server side. I'm eager to see your response. Thanks a lot.


回答1:


Try this code :-

c.eval("dev.off()")



回答2:


A folder named (null).1001.1001


Related answer at Cannot open file '', reason No such file or directory suggests using file.path as a alternative to paste for creating filenames with platform-independent path separators.

Comments suggest dev.off(). I had better luck with graphics.off(). The difference is that dev.close() closes the current device, graphics.off() closes all open devices.

But my solution turned out to be https://askubuntu.com/questions/721485/what-is-folder-null-1001-1001 I found a mysterious folder named (null).1001.1001 (Rserve is running as uid 1001, gid 1001 on Linux). I create this folder at the start of my session and I'm good to go. The presence of this folder seems to help in my case, but I don't know (yet!) what that folder is.



来源:https://stackoverflow.com/questions/12417454/plot-error-when-using-rengine-rserve

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!