Comme nous le savons tous, le logiciel R est très puissant et peut effectuer diverses statistiques et graphiques de sortie. Ce qui suit présente une méthode de communication entre le langage R et C#, ainsi qu'une méthode d'affichage des résultats Rdrawing sur l'interface utilisateur WinForm, comme décrit dans l'article C'est très détaillé, les amis dans le besoin peuvent s'y référer.
1. Préparation des prérequis
Pour installer le logiciel R, vous devez installer le logiciel R 32 bits. Les appels 64 bits signaleront les erreurs. . L'autre chose est d'ajouter R à l'environnement informatique variable .
Ouvrez le logiciel R et installez le package scatterplot3d. Ce package R est nécessaire pour la démonstration.
2. Créer le projet GraphGenerateByR La structure du projet est la suivante :
Remarque : Ici, vous devez présenter la bibliothèque de classes RDotNet, vous pouvez la télécharger vous-même : http://rdotnet.codeplex.com/
3. Code du formulaire principal
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. Après avoir cliqué sur plot, appelez le code R par défaut, la structure est la suivante :
Entrez la déclaration légale du dessin R, cliquez à nouveau sur Plot, le résultat est le suivant :
RésuméCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!