一、前提准备

安装R软件,需要安装32位的R软件,64位的调用会报错。另外就是讲R添加到电脑环境变量中。
打开R软件,安装包 scatterplot3d,演示需要用到此R包。
二、创建项目GraphGenerateByR,项目结构如下:
注意:这里需要引入RDotNet类库,可以自行下载:http://rdotnet.codeplex.com/
三、Main窗体代码
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();
}
}
}
}
四、运行:
单击plot后,调用默认R代码,结构如下:
输入合法的R绘图语句,再次单击Plot,结果如下:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# c
# windows
# form
# r语言
# 绘图
# r语言绘图案例
# C#-WinForm跨线程修改UI界面的示例
# C#子线程更新UI控件的方法实例总结
# 关于C#委托三种调用的分享使用
# C#跨PC远程调用程序并显示UI界面
# 单击
# 这篇文章
# 报错
# 谢谢大家
# 到此
# 需要用
# 可以自行
# 安装包
# 类库
# 有疑问
相关文章:
长沙做网站要多少钱,长沙国安网络怎么样?
linux top下的 minerd 木马清除方法
建站DNS解析失败?如何正确配置域名服务器?
如何在云主机快速搭建网站站点?
如何快速登录WAP自助建站平台?
黑客入侵网站服务器的常见手法有哪些?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
临沂网站制作公司有哪些,临沂第四中学官网?
香港服务器如何优化才能显著提升网站加载速度?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何配置FTP站点权限与安全设置?
C#怎么创建控制台应用 C# Console App项目创建方法
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何通过智能用户系统一键生成高效建站方案?
如何选择高效响应式自助建站源码系统?
大同网页,大同瑞慈医院官网?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
宝塔新建站点为何无法访问?如何排查?
音乐网站服务器如何优化API响应速度?
如何在宝塔面板中创建新站点?
大型企业网站制作流程,做网站需要注册公司吗?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星CMS五站合一模板配置与SEO优化指南
建站之星免费版是否永久可用?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
湖北网站制作公司有哪些,湖北清能集团官网?
内部网站制作流程,如何建立公司内部网站?
如何快速搭建虚拟主机网站?新手必看指南
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
免费视频制作网站,更新又快又好的免费电影网站?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何通过WDCP绑定主域名及创建子域名站点?
详解jQuery停止动画——stop()方法的使用
山东云建站价格为何差异显著?
如何快速生成ASP一键建站模板并优化安全性?
建站主机选哪种环境更利于SEO优化?
教学网站制作软件,学习*后期制作的网站有哪些?
广州营销型建站服务商推荐:技术优势与SEO优化解析
香港服务器建站指南:免备案优势与SEO优化技巧全解析
手机网站制作与建设方案,手机网站如何建设?
制作网站的基本流程,设计网站的软件是什么?
香港服务器租用每月最低只需15元?
如何在建站之星绑定自定义域名?
浅谈Javascript中的Label语句
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
*请认真填写需求信息,我们会在24小时内与您取得联系。