2011-02-28 70 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