Call R plots from c++ using RInside/ Rcpp

2019-04-26 09:26发布

问题:

Is it possible to call the plot functions from the c++ ? Currently when I try to do that, the ubuntu terminal sort of freezes for sometime ( may be the duration for which the 3d plot would be created and then rotated for a full 360 degrees) and then unfreezes, without ever popping a new window. Is this the expected behavior or is there something that I am doing wrong ? How can I get the plots ( R graphics ) to run from within c++ using rinside and rcpp ?

Thnx

-Egon

回答1:

Yes, there is a working examples in the Rcpp package. Look at the file functionCallback/newApiExample.r in the examples/ directory.
You may need to experiment with sleep() to 'hold' the plot for a moment, or plot to a file and then have the file displayed. It all depends but you gave little detail.



回答2:

The environment variable which deals with the interactive session is R_INTERACTIVE_DEVICE.
We need to create a file named .Renviron in our home directory, and then add the following code to that file:

R_INTERACTIVE_DEVICE = X11 for Linux based systems.

anisha@linux-y3pi:~> ls .Renviron
.Renviron

anisha@linux-y3pi:~> cat .Renviron
R_INTERACTIVE_DEVICE = X11a

References:
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



标签: r rcpp rinside