2011-02-28 80 views
7

是否可以从C++调用绘图函数? 目前,当我尝试做到这一点时,ubuntu终端会有一段时间冻结(可能是创建3d图的持续时间,然后旋转360度),然后解冻,而不会弹出新窗口。 这是预期的行为还是有什么我做错了?我怎样才能得到使用rinside和rcpp从c + +内运行图(R图形)?使用RInside/Rcpp从C++调用R图

日Thnx

-Egon

回答

5

是的,有在RCPP封装的工作实施例。查看examples/目录中的文件functionCallback/newApiExample.r
您可能需要尝试sleep()以暂时保留情节,或绘制到文件中,然后显示文件。这一切都依赖于你,但你没有提供细节。

+0

我主要使用NP包,并使用npplot功能R.当我尝试它,有或没有sys.sleep( xx),它创建一个文件“Rplots.pdf”,但它从不打开任何pdf阅读器。 – Egon 2011-02-28 14:39:38

+0

嵌入默认设置为将'interactive'标志设置为FALSE。我认为你必须改变这一点。或者绘制到一个PNG文件,并有小部件显示。 – 2011-02-28 14:56:51

+0

thnx像一个魅力。 – Egon 2011-02-28 16:07:52

1

处理交互式会话的环境变量是R_INTERACTIVE_DEVICE
我们需要创建一个名为.Renviron在我们的家目录下的文件,然后将下面的代码添加到该文件:

R_INTERACTIVE_DEVICE = X11为基于Linux的系统。

[email protected]:~> ls .Renviron 
.Renviron 

[email protected]:~> cat .Renviron 
R_INTERACTIVE_DEVICE = X11a 

参考文献:
1. http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html
2. http://stat.ethz.ch/R-manual/R-patched/library/base/html/options.html

+0

这是默认行为。它也可以在没有文件的情况下工作。 – 2012-09-14 13:03:40

+0

@DirkEddelbuettel默认情况下它不适用于我,这就是为什么我花了一个小时来搜索这个答案。 – 2012-09-14 18:30:21

+0

我会敦促解决问题的原因,而不是症状。 – 2012-09-14 19:03:47