Connessione di punti dati tramite JSLCIAO
Sto cercando di collegare i punti dati all'interno di un grafico in un certo ordine (come creare un diagramma a diamante, ecc.). Quando mi collego manualmente utilizzando la riga ed esporto lo script, vedo che utilizzava la funzione riga con le coordinate (X, Y). Qualcuno può aiutarmi per favore
1. Presumo che quelle (X,Y) siano le coordinate del frame?
2. Dato che 1. è vero, come faccio a scoprire quelli (X, Y) usando JSL? Più specificamente, è necessario conoscere la sintassi su come estrarre il frame (X,Y) per ciascun punto dati nel grafico?
Qualche altro modo efficiente per connettere i punti dati in JMP?


Grazie mille
Automazione e scriptingPersonalizzazione di massaRi: Collegamento di punti dati tramite JSLNessuna parola per apprezzare tutto il tuo aiuto. Grazie mille.
Ri: Collegamento di punti dati tramite JSLHo modificato leggermente il tuo script, ma il problema principale è che il tuo codice presuppone che tu abbia tutte le combinazioni di Gruppo1, Gruppo2 e Gruppo3, e nei dati che hai fornito non le hai, quindi il programma non riesce a trovare alcun dato da analizzare .
names default to here(1);
dtt = Current Data Table();
Summarize( dtt, byGroup1 = by( :var1 ) );
Summarize( dtt, byGroup2 = by( :var2 ) );
Summarize( dtt, byGroup3 = by( :var3 ) );
For( ii = 1, ii < N Items( byGroup1 ), ii++,
For( jj = 1, jj < N Items( byGroup2 ), jj++,
For( kk = 1, kk < N Items( byGroup3 ), kk++,
dtt << select where( :var1 == byGroup1[ii] & :var2 == byGroup2[jj] & :var3 == byGroup3[kk] );
show(ii,jj,kk,bygroup1[ii],bygroup2[jj],bygroup3[kk]);
sel = dtt << get selected rows;
If( n rows(sel) > 0,
show("inside",ii,jj,kk);
dt = dtt << subset( selected rows(1), selected columns(0));
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue", "Red", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
Line( xMatrix, yMatrix );
);
););
)
)
);Ri: Collegamento di punti dati tramite JSLGrazie mille per l'aiuto Lo apprezzo molto. Ho un'altra domanda e ti sarò grato se per favore aiutami.
Ho una grande tabella composta da molti sottoinsiemi (la tabella che ti ho inviato) e controllata da altre tre colonne aggiuntive. Stavo cercando di creare un sottoinsieme di tabelle (ognuna come quella che ti ho inviato) e applicare il codice seguente entro tre cicli For. In qualche modo la generazione della tabella dei sottoinsiemi non funziona.
dtt = Current Data Table();
Summarize( dtt, byGroup1 = by( :var1 ) );
Summarize( dtt, byGroup2 = by( :var2 ) );
Summarize( dtt, byGroup3 = by( :var3 ) );
For( ii = 1, ii < N Items( byGroup1 ), ii++,
For( jj = 1, jj < N Items( byGroup2 ), jj++,
For( kk = 1, kk < N Items( byGroup3 ), kk++,
dt = dtt << subset(
select where( :var1 == byGroup1[ii] & :var2 == byGroup2[jj] & :var3 == byGroup3[kk] )
);
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ), Inc( 0.1 ),
Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue", "Red", "Green"};
Fill Pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color( colorList[i] );
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
Line( xMatrix, yMatrix );
);
);
);
);
);
| asse x |
asse y |
etichetta |
leggenda |
var1 |
var2 |
var3 |
| 2.385649 |
2.260832 |
UN |
set1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.261566 |
UN |
set2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.291898 |
UN |
set3 |
con1 |
con11 |
con111 |
| 2.297858 |
2.445948 |
B |
set1 |
con1 |
con11 |
con111 |
| 2.297908 |
2.446336 |
B |
set2 |
con1 |
con11 |
con111 |
| 2.331846 |
2.475788 |
B |
set3 |
con1 |
con11 |
con111 |
| 2.385649 |
2.649821 |
C |
set1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.649944 |
C |
set2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.674239 |
C |
set3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.730171 |
D |
set1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.730239 |
D |
set2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.753243 |
D |
set3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.649821 |
e |
set1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.649944 |
e |
set2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.674239 |
e |
set3 |
con1 |
con11 |
con111 |
| 2.905865 |
2.445948 |
F |
set1 |
con1 |
con11 |
con111 |
| 2.90615 |
2.446336 |
F |
set2 |
con1 |
con11 |
con111 |
| 2.925915 |
2.475788 |
F |
set3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.260832 |
G |
set1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.261566 |
G |
set2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.291898 |
G |
set3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.181713 |
H |
set1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.182677 |
H |
set2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.213788 |
H |
set3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.445948 |
io |
set1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.446336 |
io |
set2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.475788 |
io |
set3 |
con1 |
con11 |
con111 |
| 2.624214 |
2.486915 |
UN |
set1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.487723 |
UN |
set2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.521088 |
UN |
set3 |
con2 |
con22 |
con222 |
| 2.527644 |
2.690543 |
B |
set1 |
con2 |
con22 |
con222 |
| 2.527699 |
2.69097 |
B |
set2 |
con2 |
con22 |
con222 |
| 2.565031 |
2.723367 |
B |
set3 |
con2 |
con22 |
con222 |
| 2.624214 |
2.914803 |
C |
set1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.914938 |
C |
set2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.941663 |
C |
set3 |
con2 |
con22 |
con222 |
| 2.84622 |
3.003188 |
D |
set1 |
con2 |
con22 |
con222 |
| 2.846542 |
3.003263 |
D |
set2 |
con2 |
con22 |
con222 |
| 2.880352 |
3.028567 |
D |
set3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.914803 |
e |
set1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.914938 |
e |
set2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.941663 |
e |
set3 |
con2 |
con22 |
con222 |
| 3.196452 |
2.690543 |
F |
set1 |
con2 |
con22 |
con222 |
| 3.196765 |
2.69097 |
F |
set2 |
con2 |
con22 |
con222 |
| 3.218507 |
2.723367 |
F |
set3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.486915 |
G |
set1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.487723 |
G |
set2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.521088 |
G |
set3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.399884 |
H |
set1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.400945 |
H |
set2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.435167 |
H |
set3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.690543 |
io |
set1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.69097 |
io |
set2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.723367 |
io |
set3 |
con2 |
con22 |
con222 |
| 2.743496 |
2.599957 |
UN |
set1 |
con3 |
con32 |
con33 |
| 2.743649 |
2.600801 |
UN |
set2 |
con3 |
con32 |
con33 |
| 2.781123 |
2.635683 |
UN |
set3 |
con3 |
con32 |
con33 |
| 2.642537 |
2.81284 |
B |
set1 |
con3 |
con32 |
con33 |
| 2.642594 |
2.813286 |
B |
set2 |
con3 |
con32 |
con33 |
| 2.681623 |
2.847156 |
B |
set3 |
con3 |
con32 |
con33 |
| 2.743496 |
3.047294 |
C |
set1 |
con3 |
con32 |
con33 |
| 2.743649 |
3.047436 |
C |
set2 |
con3 |
con32 |
con33 |
| 2.781123 |
3.075375 |
C |
set3 |
con3 |
con32 |
con33 |
| 2.975594 |
3.139697 |
D |
set1 |
con3 |
con32 |
con33 |
| 2.97593 |
3.139775 |
D |
set2 |
con3 |
con32 |
con33 |
| 3.011277 |
3.166229 |
D |
set3 |
con3 |
con32 |
con33 |
| 3.240016 |
3.047294 |
e |
set1 |
con3 |
con32 |
con33 |
| 3.240306 |
3.047436 |
e |
set2 |
con3 |
con32 |
con33 |
| 3.26574 |
3.075375 |
e |
set3 |
con3 |
con32 |
con33 |
| 3.341745 |
2.81284 |
F |
set1 |
con3 |
con32 |
con33 |
| 3.342073 |
2.813286 |
F |
set2 |
con3 |
con32 |
con33 |
| 3.364802 |
2.847156 |
F |
set3 |
con3 |
con32 |
con33 |
| 3.240016 |
2.599957 |
G |
set1 |
con3 |
con32 |
con33 |
| 3.240306 |
2.600801 |
G |
set2 |
con3 |
con32 |
con33 |
| 3.26574 |
2.635683 |
G |
set3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.50897 |
H |
set1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.510079 |
H |
set2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.545856 |
H |
set3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.81284 |
io |
set1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.813286 |
io |
set2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.847156 |
io |
set3 |
con3 |
con32 |
con33 |
Ri: Collegamento di punti dati tramite JSLSe all'oggetto del Costruttore di grafici viene aggiunto un semplice script grafico, puoi ottenere ciò che desideri

names default to here(1);
// Create the data table
dt = New Table( "Example",
Add Rows( 27 ),
New Script(
"Source",
Data Table( "Untitled 60" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "x axis",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[2.3856, 2.3858, 2.4184, 2.2979, 2.2979, 2.3318, 2.3856, 2.3858, 2.4184,
2.5875, 2.5878, 2.6185, 2.8174, 2.8177, 2.8398, 2.9059, 2.9062, 2.9259,
2.8174, 2.8177, 2.8398, 2.5875, 2.5878, 2.6185, 2.5875, 2.5878, 2.6185]
)
),
New Column( "y axis",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[2.2608, 2.2616, 2.2919, 2.4459, 2.4463, 2.4758, 2.6498, 2.6499, 2.6742,
2.7302, 2.7302, 2.7532, 2.6498, 2.6499, 2.6742, 2.4459, 2.4463, 2.4758,
2.2608, 2.2616, 2.2919, 2.1817, 2.1827, 2.2138, 2.4459, 2.4463, 2.4758]
)
),
New Column( "label",
Character,
"Nominal",
Set Values(
{"a", "a", "a", "b", "b", "b", "c", "c", "c", "d", "d", "d", "e", "e",
"e", "f", "f", "f", "g", "g", "g", "h", "h", "h", "i", "i", "i"}
)
),
New Column( "legend",
Character,
"Nominal",
Set Values(
{"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3",
"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3",
"set1", "set2", "set3", "set1", "set2", "set3", "set1", "set2", "set3"}
)
)
);
// Draw the scatterplot
gb = dt << Graph Builder(
Size( 531, 456 ),
Show Control Panel( 0 ),
Variables( X( :x axis ), Y( :y axis ), Overlay( :legend ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x axis",
ScaleBox,
{Format( "Best", 12 ), Min( 2.273568 ), Max( 3.00134902479339 ),
Inc( 0.1 ), Minor Ticks( 0 )}
)
)
);
// Add a simple graphics script to connect the points
Report( gb )[FrameBox( 1 )] << add graphics script(
Summarize( dt, byGroup = by( :legend ) );
colorList = {"Blue","Red","Green"};
fill pattern( [0] );
For( i = 1, i <= N Items( byGroup ), i++,
Pen Color(colorList[i]);
theRows = dt << get rows where( :legend == byGroup[i] & :Label != "i" );
// Add the first value as the last value to complete the object
theRows = theRows |/ theRows[1];
xMatrix = :x axis[theRows];
yMatrix = :y axis[theRows];
line( xMatrix, yMatrix );
);
);
Ri: Collegamento di punti dati tramite JSLecco i dati
| asse x | asse y | etichetta | leggenda |
| 2.3856 | 2.2608 | UN | set1 |
| 2.3858 | 2.2616 | UN | set2 |
| 2.4184 | 2.2919 | UN | set3 |
| 2.2979 | 2.4459 | B | set1 |
| 2.2979 | 2.4463 | B | set2 |
| 2.3318 | 2.4758 | B | set3 |
| 2.3856 | 2.6498 | C | set1 |
| 2.3858 | 2.6499 | C | set2 |
| 2.4184 | 2.6742 | C | set3 |
| 2.5875 | 2.7302 | D | set1 |
| 2.5878 | 2.7302 | D | set2 |
| 2.6185 | 2.7532 | D | set3 |
| 2.8174 | 2.6498 | e | set1 |
| 2.8177 | 2.6499 | e | set2 |
| 2.8398 | 2.6742 | e | set3 |
| 2.9059 | 2.4459 | F | set1 |
| 2.9062 | 2.4463 | F | set2 |
| 2.9259 | 2.4758 | F | set3 |
| 2.8174 | 2.2608 | G | set1 |
| 2.8177 | 2.2616 | G | set2 |
| 2.8398 | 2.2919 | G | set3 |
| 2.5875 | 2.1817 | H | set1 |
| 2.5878 | 2.1827 | H | set2 |
| 2.6185 | 2.2138 | H | set3 |
| 2.5875 | 2.4459 | io | set1 |
| 2.5878 | 2.4463 | io | set2 |
| 2.6185 | 2.4758 | io | set3 |
Sto cercando di connettere punti dati per ciascun set ma non includo il gruppo "i" (i dati del centro). l'istantanea di esempio è riportata di seguito

Grazie in anticipo per il vostro aiuto.
Ri: Collegamento di punti dati tramite JSLPuoi per favore fornire i dati da cui stai creando i grafici?
Ri: Collegamento di punti dati tramite JSLGrazie per il tuo contributo ma non sono riuscito a scoprire cosa stavo cercando. Vedo una funzione di linea diversa e mostra tutto per una determinata coordinata. La mia domanda riguardava più come trovare quelle coordinate [frame e non dati (x,y)] per un dato punto dati nel grafico. Sono riuscito a connettermi utilizzando il generatore di grafici, ma poi collega anche i punti dati centrali che non desidero. Se lo escludo, non verranno visualizzati i punti dati che non voglio. Posso ancora replicare la prima serie di punti dati per chiudere il diamante ma poi non so come posso ancora mostrare i punti dati al centro ma senza collegarli. Grazie mille.

Ri: Collegamento di punti dati tramite JSLInnanzitutto, vedere Aiuto > Indice di scripting e cercare la funzione Line(). Quindi andare su Guida > Libreria documentazione JMP > Guida allo scripting e cercarlo nuovamente per una spiegazione più dettagliata e ulteriori esempi.