ご存知のとおり、R ソフトウェアは非常に強力で、さまざまな統計を実行し、グラフィックを出力できます。以下では、R 言語と C# 間の通信方法と、Rdrawing の結果を WinForm UI インターフェイスに表示する方法について詳しく紹介しています。必要な方は参考にしてください。 。
1. 前提条件の準備
R ソフトウェアをインストールするには、32 ビットの R ソフトウェアをインストールする必要があり、64 ビットを呼び出すとエラーが報告されます。もう 1 つは、コンピューター環境変数に R を追加することです。
R ソフトウェアを開き、scatterplot3d パッケージをインストールします。この R パッケージはデモンストレーションに必要です。
2. プロジェクトGraphGenerateByRを作成します。プロジェクトの構造は次のとおりです:
注: ここでRDotNetクラスライブラリを導入する必要があります。それは自分でダウンロードできます。 http://rdotnet.codeplex.com/
3. メインフォームコード
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace GraphGenerateByR { using RDotNet; public partial class Main : Form { public Main() { InitializeComponent(); } REngine engine = null; string Rcode = ""; private void btnPlot_Click(object sender, EventArgs e) { try { if(this.txtRcode.Text=="") { Rcode = @"library('scatterplot3d') z <- seq(-10, 10, 0.01) x <- cos(z) y <- sin(z) scatterplot3d(x, y, z, highlight.3d=TRUE, col.axis='blue', col.grid='lightblue',main='3d绘图',pch=20) "; } else { Rcode = this.txtRcode.Text; } //R.3.2.4 engine = REngine.GetInstance(); engine.Initialize(); //图片加入GUID,防止重名(还有一种就是先删除后保存) string rnd = System.Guid.NewGuid().ToString().Replace("-", ""); string filename ="i"+ rnd+ "Rimage.png"; engine.Evaluate(string.Format("png(file='{0}',bg ='transparent',width={1},height={2})", filename, this.ptbGraphic.Width, this.ptbGraphic.Height)); //engine.Evaluate(@"x <- (0:12) * pi / 12 // y <- cos(x) // plot(x,y); // "); engine.Evaluate(Rcode); engine.Evaluate("dev.off()"); string path = System.IO.Path.GetFullPath(filename); Bitmap image = new Bitmap(path); ptbGraphic.Image = image; } catch(Exception ex) { MessageBox.Show(ex.Message); } } private void Main_FormClosing(object sender, FormClosingEventArgs e) { if(engine!=null) { //clean up engine.Dispose(); } } } }
4. プロットをクリックすると、デフォルトの R コードが呼び出されます。構造は次のとおりです。 :
法的な R 描画ステートメントを入力し、再度 [プロット] をクリックすると、結果は次のようになります:概要
以上がC# を使用して R を呼び出して描画および表示する Windows フォームを実装する方法の詳細な紹介 (図)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。