Wie wir alle wissen, ist R-Software sehr leistungsfähig und kann verschiedene Statistiken erstellen und Grafiken ausgeben. Im Folgenden wird eine Methode für die Kommunikation zwischen der R-Sprache und C# sowie eine Methode zum Anzeigen von RZeichnungsergebnissen auf der WinForm-Benutzeroberfläche vorgestellt, wie in beschrieben Der Artikel ist sehr detailliert, Freunde in Not können sich darauf beziehen.
1. Vorbereitende Maßnahmen
Um die R-Software zu installieren, müssen Sie bei 64-Bit-Aufrufen Fehler melden . Die andere Sache besteht darin, R zur Computerumgebungsvariablen hinzuzufügen.
Öffnen Sie die R-Software und installieren Sie das Scatterplot3d-Paket. Dieses R-Paket wird für die Demonstration benötigt.
2. Erstellen Sie das Projekt GraphGenerateByR. Die Projektstruktur ist wie folgt:
Hinweis: Hier müssen Sie die RDotNetKlassenbibliothek vorstellen, Sie können sie selbst herunterladen: http://rdotnet.codeplex.com/
3. Hauptformularcode
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. Ausführen:
Nachdem Sie auf „Plot“ geklickt haben, rufen Sie den Standard-R-Code auf. Die Struktur ist wie folgt:
Geben Sie die rechtliche R-Zeichnungsanweisung ein, klicken Sie erneut auf „Plot“. Das Ergebnis ist wie folgt :
Zusammenfassung
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Methode zur Verwendung von C# zur Implementierung von Windows Form, die R zum Zeichnen und Anzeigen aufruft (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!