Maison développement back-end Tutoriel C#.Net Introduction détaillée à la méthode d'utilisation de C# pour implémenter Windows Form appelant R pour le dessin et l'affichage (image)

Introduction détaillée à la méthode d'utilisation de C# pour implémenter Windows Form appelant R pour le dessin et l'affichage (image)

Mar 17, 2017 pm 01:10 PM

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=&#39;blue&#39;, col.grid=&#39;lightblue&#39;,main=&#39;3d绘图&#39;,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=&#39;{0}&#39;,bg =&#39;transparent&#39;,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();
   }
  }
 }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La différence entre le multithreading et le C # asynchrone La différence entre le multithreading et le C # asynchrone Apr 03, 2025 pm 02:57 PM

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

Comment ouvrir le format XML Comment ouvrir le format XML Apr 02, 2025 pm 09:00 PM

Utiliser la plupart des éditeurs de texte pour ouvrir des fichiers XML; Si vous avez besoin d'un affichage d'arbre plus intuitif, vous pouvez utiliser un éditeur XML, tel que Oxygen XML Editor ou XMLSPY; Si vous traitez les données XML dans un programme, vous devez utiliser un langage de programmation (tel que Python) et des bibliothèques XML (telles que XML.ETREE.ElementTree) pour analyser.

Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

C # Méthode multithread pour empêcher le brouillage C # Méthode multithread pour empêcher le brouillage Apr 03, 2025 pm 02:54 PM

Les façons suivantes d'éviter le multithreading "coincé" en C #: Évitez les opérations longues sur les threads d'interface utilisateur. Utilisez la tâche et async / Await pour effectuer des opérations longues de manière asynchrone. Mettez à jour l'interface utilisateur sur le thread d'interface utilisateur via application.current.dispatcher.invoke. Utilisez l'annulation pour contrôler l'annulation de la tâche. Faites un usage rationnel des pools de threads pour éviter une création excessive de fils. Faites attention à la lisibilité et à la maintenabilité du code, ce qui facilite le débogage. Les journaux sont enregistrés dans chaque fil pour un débogage facile.

Quelles sont les différences et les connexions entre C et C #? Quelles sont les différences et les connexions entre C et C #? Apr 03, 2025 pm 10:36 PM

Bien que C et C # aient des similitudes, ils sont complètement différents: C est une gestion manuelle de la mémoire manuelle et un langage dépendant de la plate-forme utilisé pour la programmation système; C # est un langage orienté objet, des ordures et un langage indépendant de la plate-forme utilisé pour le bureau, l'application Web et le développement de jeux.

Comment convertir XML en mot Comment convertir XML en mot Apr 03, 2025 am 08:15 AM

Il existe trois façons de convertir XML en Word: utilisez Microsoft Word, utilisez un convertisseur XML ou utilisez un langage de programmation.

C # .NET avancé: concurrence, parallélisme et multithreading expliqué C # .NET avancé: concurrence, parallélisme et multithreading expliqué Apr 03, 2025 am 12:01 AM

C # .NET fournit des outils puissants pour la programmation simultanée, parallèle et multithread. 1) Utilisez la classe de threads pour créer et gérer des threads, 2) La classe de tâches fournit une abstraction plus avancée, en utilisant des pools de threads pour améliorer l'utilisation des ressources, 3) Implémentez l'informatique parallèle via Parallel.ForEach, 4) Async / Await et Task.

Comment changer le format de XML Comment changer le format de XML Apr 03, 2025 am 08:42 AM

Il existe plusieurs façons de modifier les formats XML: édition manuellement avec un éditeur de texte tel que le bloc-notes; Formatage automatique avec des outils de mise en forme XML en ligne ou de bureau tels que XMLBeautifier; Définir les règles de conversion à l'aide d'outils de conversion XML tels que XSLT; ou analyser et fonctionner à l'aide de langages de programmation tels que Python. Soyez prudent lorsque vous modifiez et sauvegardez les fichiers d'origine.

See all articles