【问题标题】:Call R plots from c++ using RInside/ Rcpp使用 RInside/Rcpp 从 C++ 调用 R 绘图
【发布时间】:2011-07-05 19:01:34
【问题描述】:

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

谢谢

-埃贡

【问题讨论】:

    标签: r rcpp rinside


    【解决方案1】:

    是的,Rcpp 包中有一个工作示例。查看examples/目录下的文件functionCallback/newApiExample.r
    您可能需要尝试使用sleep() 来“保留”绘图片刻,或者绘图到文件然后显示该文件。这一切都取决于,但你提供的细节很少。

    【讨论】:

    • 我主要使用 np 包,并在 R 中使用 npplot 函数。当我尝试使用或不使用 sys.sleep(xx) 时,它会创建一个文件“Rplots.pdf”,但是它永远不会用任何 pdf 阅读器打开。
    • 嵌入默认设置 interactive 标志为 FALSE。我想你必须改变它。或者绘制到一个 png 文件并让小部件显示它。
    【解决方案2】:

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

    R_INTERACTIVE_DEVICE = X11 适用于基于 Linux 的系统。

    anisha@linux-y3pi:~> ls .Renviron
    .Renviron
    
    anisha@linux-y3pi:~> 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

    【讨论】:

    • @DirkEddelbuettel 默认情况下它对我不起作用,这就是为什么我花了一个小时来搜索这个答案。!
    • 我会敦促解决问题的原因,而不是症状。
    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多