Wählen Sie Rotation und Datenspalten aus dem 3D-Streudiagramm-Plotskript ausWir generieren ein Skript zur automatischen Erstellung von 2D-XY-Koordinatenspalten aus einer benutzerdefinierten 3D-Grafikausrichtung. Das Skript ruft einen R-Code auf, um die Berechnungen durchzuführen, muss aber die XYZ-Spaltendaten und die Rotationseinstellungen an R weitergeben.
Aus einem gespeicherten Scatterplot-3D-Skript können wir die XYZ-Spaltennamen (zue1...) und die Rotationseinstellungen (-8...) sehen. Wir benötigen JSL-Code, um diese Spalten auszuwählen und eine CSV-Datei zu exportieren. Und Code, um die Werte der Rotationseinstellungen auszuwählen und zu exportieren.
Ich bin für jeden Rat dankbar.
Scatterplot 3D(
Y( :zue1, :zue2, :zue3 ),
Frame3D(
Set Grab Handles( 0 ),
Set Rotation( -8.15592033195416, 47.3040538060599, 75.4291344975828 )
)
);
MassenanpassungBetreff: Wählen Sie Rotations- und Datenspalten aus dem 3D-Scatterplot-Plot-Skript ausOh, ich sehe, dass Ihr Skript (glaube ich) das enthält, was wir brauchen. Vielen Dank. Willl versuchen, diese Erkenntnisse zu implementieren.
Betreff: Wählen Sie Rotations- und Datenspalten aus dem 3D-Scatterplot-Plot-Skript ausBitte nehmen Sie sich noch einmal die Zeit, die von mir bereitgestellte JSL zu überprüfen.Das Beispiel führt ein Scatterplot 3D aus, in dem Sie die Rotation beliebig ändern können. Beim Schließen des Fensters extrahiert es das Skript für das Beispiel und entfernt die Variablen und Rotationswerte aus dem gerade ausgeführten Beispiel .Anschließend wird eine CSV-Datei erstellt und auf der Festplatte gespeichert.Wenn Sie den vollständigen Code, den ich bereitgestellt habe, nicht möchten, können Sie leicht den Code sehen, den ich verwendet habe, um die Variablen und Rotationswerte zu entfernen und sie in JMP-Listen mit den Namen varsList und rotationList zu platzieren.
Betreff: Wählen Sie Rotations- und Datenspalten aus dem 3D-Scatterplot-Plot-Skript ausDanke euch beiden.Wir werden die Werte wie von Ihnen vorgeschlagen direkt an R übergeben.Jedoch..... unsere grundlegende Frage (die bei der Formulierung unseres Gesamtziels verloren gegangen ist) ist......Wie können wir ein JSL-Skript haben, das die Rotationswerte auswählt (-8 ...)und die Spaltendaten (zue1,... in diesem Beispiel) an R zu übergeben.Wir möchten, dass der Benutzer eine gewünschte 3D-Projektion erstellt, sie wie gewünscht ausrichtet und das Skript dann eine 2D-Projektion aus dieser Ausrichtung generiert.Wir müssen auf die Rotationswerte aus dem gespeicherten 3D-Scatterplot-Skript (oder wie darin zu sehen) zugreifen und diese auswählen.Wir möchten auch, dass das Skript oder Add-In, das wir erstellen, automatisch die verwendeten Spaltendaten (für den Export nach R) auswählt, also wählen Sie die XYZ-Spaltendaten aus, die für das ursprüngliche 3D-Diagramm verwendet werden.
Hier ist das 3D-Scatterplot-Skript ....
Vielen Dank!
Scatterplot 3D(
Y( :zue1, :zue2, :zue3 ),
Frame3D(
Set Grab Handles( 0 ),
Set Rotation( -8.15592033195416, 47.3040538060599, 75.4291344975828 )
)
);
Betreff: Wählen Sie Rotations- und Datenspalten aus dem 3D-Scatterplot-Plot-Skript aus@ian_jmp Der Vorschlag, die R-Routinen von JMP aus aufzurufen, könnte wirklich eine großartige Möglichkeit sein, das Problem zu lösen.
Wenn Sie wirklich eine CSV-Pass-Through-Datentabelle verwenden müssen, finden Sie hier ein einfaches Beispiel für die Erstellung einer CSV-Datei
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
sp = Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D( Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) )
);
sp << on close(
theScript = Char( (Report( sp ) << get scriptable object) << get script );
varsList = {};
Insert Into( varsList, Word( 2, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 4, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 6, Substr( theScript, Contains( theScript, "Y(" ) ), ":,)" ) );
rotationList = {};
Insert Into( rotationList, Word( 2, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 3, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 4, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
dtSub = dt << subset( columns( Eval( varsList ) ), selected rows( 0 ) );
dtSub << New Column( "_Vars_", character, set values( varsList ) );
dtSub << New Column( "_Rotation_", character, set values( rotationList ) );
dtSub << Save( "$TEMP/passvalues.csv" );
close( dtSub, nosave );
);
// This line opens the csv back into JMP
//open("$TEMP/passvalues.csv");Betreff: Wählen Sie Rotations- und Datenspalten aus dem 3D-Scatterplot-Plot-Skript ausAnstatt CSV-Dateien als Vermittler zu verwenden, möchten Sie vielleicht einen Blick auf die JMP- und R-Integration .