Hallo JMP-Community,
Ich arbeite derzeit an einem Projekt, das auf der Ausgabe eines R-Programms (WGCNA) basiert und die Clusteridentifikation basierend auf der R-Farbdefinition zurückgibt (Beispiele finden Sie unten).
Obwohl ich den RGB-Code für jede R-Farbe manuell abrufen kann, suche ich nach einer automatisierten Lösung für diese mühsame Aufgabe. Hat jemand diesen Prozess automatisiert?
Beispiele für R-Farben:
dunkelorange
orange
dunkelgrau
dunkles Türkis
dunkelgrün
dunkelrot
royalblau
hellgelb
hellgrün
grau60
Hellcyan
Mitternachtsblau
Cyan
Lachs
Körper
grüngelb
lila
Magenta
Rosa
Schwarz
grau
Rot
Grün
Gelb
braun
Blau
Türkis
Danke schön.
Beste grüße,
TS
https://r-charts.com/colors/ zeigt den Farbnamen und die RGB-Hexadezimalwerte für R-Farben an. JMP-Farben können aus RGB-Werten erstellt werden. Auf den ersten Blick scheinen die R-Farbnamen mit der X-Windows-Liste der Farbnamen und -werte identisch zu sein. https://en.wikipedia.org/wiki/X11_color_names Die R-Funktion rib( r, g, b, alpha) gibt eine R-Farbe für einen RGBA-Wert von [0,1] zurück. Umgekehrt verwenden Sie die
col2rgb("peachpuff")
um die RGB-Werte für den Farbnamen Peachpuff zurückzugeben. Siehe: https://www.geeksforgeeks.org/convert-a-color-to-its-rgb-value-in-r-programming-col2rgb-function/
rinit();
rsubmit("\[
r <- "red"
values <- col2rgb(r)
]\");
rgb = rget(values);<BR />show(rgb);<BR />jmp_c = RGB Color(rgb)
/*:
[255, 0, 0] <BR />-16711680
Dies entspricht der Rückgabe von RGB Color( 1.0, 0,0 0.0 )
Für alle, die R mit JMP verwenden, bietet JMP 19 eine neue R-Integration. Bitte testen Sie EA-7 und höher. Die Überarbeitung wird noch überarbeitet und finalisiert. Die aktualisierte R-Integration basiert nun auf der Python-Integration und verwendet ein jmpex- Paket, das Teil unserer Beispielskripte/Python ist. Dieses reine Python-Paket nutzt das rpy2- Paket zum Marshalling zwischen JMP, Python und R. Dadurch erhalten Sie eine vertraute Python-API, die die JSL-Schnittstelle nachahmt. Die JSL-Schnittstelle ruft nun das jmpex- Paket auf. Da wir das Paket als Beispiel veröffentlichen, können Sie selbst am Code herumbasteln oder einfach nur ausprobieren, wie er funktioniert. Sollten wir etwas Wichtiges übersehen haben, können Sie es beheben, bevor wir es in einer weiteren JMP-Version beheben. Das jmpex - Paket unterstützt sowohl die JSL- als auch die Python-Schnittstelle. Es dient auch als Beispiel für die Erstellung eines installierbaren Python-Pakets.
Feedback zu Fehlerbehebungen und Verbesserungen ist willkommen.
In JMP 18 und früheren Versionen führte jede Interaktion, jeder JSL-R-Befehl, dazu, dass eine Austauschdatei in das Dateisystem geschrieben wurde. Darauf griff dann der Prozess zu, der R aufrief. Alles lief über das Dateisystem. Mit rpy2 erfolgen nun alle Übertragungen und Interaktionen im Speicher. Es gibt einige minimale Abwertungen der JSL-Schnittstelle aufgrund der Ausführung auf der Python-Integration und Unterschiede zwischen rpy2 und dem vorherigen externen Prozess, der mit R interagierte.
Der Skriptindex wurde in 19 für die JSL-Funktionalität und das jmpex- Paket aktualisiert.
Sie müssen R installiert und die Umgebungsvariable R_HOME gesetzt haben, bevor Sie jmpex installieren oder R Init() zum ersten Mal ausführen. R Init() versucht automatisch, jmpex aus dem Verzeichnis SAMPLE_SCRIPTS/Python zu installieren, falls es noch nicht installiert ist. Python-Benutzer müssen entweder R Init() einmal ausführen oder jmputils.jpip() verwenden, um die Datei jmpex.zip zu installieren.
import jmp
import os
from jmputils import jpip
jpip('install', [ os.path.join(jmp.SAMPLE_SCRIPTS, 'Python', 'jmpex.zip') ] )