一、前提准备
安装R软件,需要安装32位的R软件,64位的调用会报错。另外就是讲R添加到电脑环境变量中。
打开R软件,安装包 scatterplot3d,演示需要用到此R包。
二、创建项目GraphGenerateByR,项目结构如下:
注意:这里需要引入RDotNet类库,可以自行下载:http://rdotnet.c**odepl*ex.com/
三、Main窗体代码
| 代码如下 | 复制代码 |
|
usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms;
namespaceGraphGenerateByR { usingRDotNet; publicpartialclassMain : Form { publicMain() { InitializeComponent(); } REngine engine =null;
stringRcode =""; privatevoidbtnPlot_Click(objectsender, EventArgs e) { try { if(this.txtRcode.Text=="") { Rcode =@"library('scatterplot3d') z x y scatterplot3d(x, y, z, highlight.3d=TRUE, col.axis='blue', col.grid='lightblue',main=Ɖd绘图',pch=20) "; } else { Rcode =this.txtRcode.Text; }
//R.3.2.4 engine = REngine.GetInstance(); engine.Initialize(); //图片加入GUID,防止重名(还有一种就是先删除后保存) stringrnd = System.Guid.NewGuid().ToString().Replace("-",""); stringfilename ="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 // y // plot(x,y); // "); engine.Evaluate(Rcode); engine.Evaluate("dev.off()"); stringpath = System.IO.Path.GetFullPath(filename);
Bitmap image =newBitmap(path); ptbGraphic.Image = image; } catch(Exception ex) { MessageBox.Show(ex.Message); }
}
privatevoidMain_FormClosing(objectsender, FormClosingEventArgs e) { if(engine!=null) { //clean up engine.Dispose(); } } } } | |
四、运行:
单击plot后,调用默认R代码,结构如下:
输入合法的R绘图语句,再次单击Plot,结果如下:
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏