Conexión de puntos de datos mediante JSLHola
Estoy intentando conectar puntos de datos dentro de un gráfico en cierto orden (como crear un gráfico de diamantes, etc.). Cuando me conecto manualmente usando la línea y exporto el script, veo que usó la función de línea con la coordenada (X,Y). ¿Alguien puede ayudarme con
1. ¿Asumo que esas (X,Y) son coordenadas de cuadro?
2. Dado que 1. es cierto, ¿cómo puedo saber esos (X,Y) usando JSL? Más específicamente, ¿necesita conocer la sintaxis sobre cómo extraer el marco (X,Y) para cada punto de datos en el gráfico?
¿Conoce alguna otra forma eficiente de conectar puntos de datos en JMP?


Muchas gracias
Automatización y secuencias de comandosLa personalización en masaRe: Conectar puntos de datos usando JSLNo hay palabras para agradecer toda su ayuda. Un millón de gracias.
Re: Conectar puntos de datos usando JSLHe ajustado un poco su secuencia de comandos, pero el problema principal es que su código supone que tiene todas las combinaciones de Grupo1, Grupo2 y Grupo3, y en los datos que proporcionó no las tiene, por lo que el programa no puede encontrar ningún dato para analizar. .
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 );
);
););
)
)
);Re: Conectar puntos de datos usando JSLMuchas gracias por la ayuda. Se lo agradezco mucho. Tengo una pregunta más y le agradecería si pudiera ayudarme.
Tengo una tabla grande que consta de muchos de los subconjuntos (la tabla que te envié) y está controlada por tres columnas adicionales más. Estaba intentando crear un subconjunto de tablas (cada una como la que te envié) y aplicar el siguiente código dentro de tres bucles For. De alguna manera, la generación de la tabla de subconjuntos no funciona.
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 );
);
);
);
);
);
| eje x |
eje y |
etiqueta |
leyenda |
var1 |
var2 |
var3 |
| 2.385649 |
2.260832 |
a |
serie 1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.261566 |
a |
conjunto2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.291898 |
a |
conjunto3 |
con1 |
con11 |
con111 |
| 2.297858 |
2.445948 |
b |
serie 1 |
con1 |
con11 |
con111 |
| 2.297908 |
2.446336 |
b |
conjunto2 |
con1 |
con11 |
con111 |
| 2.331846 |
2.475788 |
b |
conjunto3 |
con1 |
con11 |
con111 |
| 2.385649 |
2.649821 |
C |
serie 1 |
con1 |
con11 |
con111 |
| 2.385782 |
2.649944 |
C |
conjunto2 |
con1 |
con11 |
con111 |
| 2.418368 |
2.674239 |
C |
conjunto3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.730171 |
d |
serie 1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.730239 |
d |
conjunto2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.753243 |
d |
conjunto3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.649821 |
mi |
serie 1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.649944 |
mi |
conjunto2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.674239 |
mi |
conjunto3 |
con1 |
con11 |
con111 |
| 2.905865 |
2.445948 |
F |
serie 1 |
con1 |
con11 |
con111 |
| 2.90615 |
2.446336 |
F |
conjunto2 |
con1 |
con11 |
con111 |
| 2.925915 |
2.475788 |
F |
conjunto3 |
con1 |
con11 |
con111 |
| 2.817405 |
2.260832 |
gramo |
serie 1 |
con1 |
con11 |
con111 |
| 2.817657 |
2.261566 |
gramo |
conjunto2 |
con1 |
con11 |
con111 |
| 2.839774 |
2.291898 |
gramo |
conjunto3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.181713 |
h |
serie 1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.182677 |
h |
conjunto2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.213788 |
h |
conjunto3 |
con1 |
con11 |
con111 |
| 2.587473 |
2.445948 |
i |
serie 1 |
con1 |
con11 |
con111 |
| 2.587765 |
2.446336 |
i |
conjunto2 |
con1 |
con11 |
con111 |
| 2.618502 |
2.475788 |
i |
conjunto3 |
con1 |
con11 |
con111 |
| 2.624214 |
2.486915 |
a |
serie 1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.487723 |
a |
conjunto2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.521088 |
a |
conjunto3 |
con2 |
con22 |
con222 |
| 2.527644 |
2.690543 |
b |
serie 1 |
con2 |
con22 |
con222 |
| 2.527699 |
2.69097 |
b |
conjunto2 |
con2 |
con22 |
con222 |
| 2.565031 |
2.723367 |
b |
conjunto3 |
con2 |
con22 |
con222 |
| 2.624214 |
2.914803 |
C |
serie 1 |
con2 |
con22 |
con222 |
| 2.62436 |
2.914938 |
C |
conjunto2 |
con2 |
con22 |
con222 |
| 2.660205 |
2.941663 |
C |
conjunto3 |
con2 |
con22 |
con222 |
| 2.84622 |
3.003188 |
d |
serie 1 |
con2 |
con22 |
con222 |
| 2.846542 |
3.003263 |
d |
conjunto2 |
con2 |
con22 |
con222 |
| 2.880352 |
3.028567 |
d |
conjunto3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.914803 |
mi |
serie 1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.914938 |
mi |
conjunto2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.941663 |
mi |
conjunto3 |
con2 |
con22 |
con222 |
| 3.196452 |
2.690543 |
F |
serie 1 |
con2 |
con22 |
con222 |
| 3.196765 |
2.69097 |
F |
conjunto2 |
con2 |
con22 |
con222 |
| 3.218507 |
2.723367 |
F |
conjunto3 |
con2 |
con22 |
con222 |
| 3.099146 |
2.486915 |
gramo |
serie 1 |
con2 |
con22 |
con222 |
| 3.099423 |
2.487723 |
gramo |
conjunto2 |
con2 |
con22 |
con222 |
| 3.123751 |
2.521088 |
gramo |
conjunto3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.399884 |
h |
serie 1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.400945 |
h |
conjunto2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.435167 |
h |
conjunto3 |
con2 |
con22 |
con222 |
| 2.84622 |
2.690543 |
i |
serie 1 |
con2 |
con22 |
con222 |
| 2.846542 |
2.69097 |
i |
conjunto2 |
con2 |
con22 |
con222 |
| 2.880352 |
2.723367 |
i |
conjunto3 |
con2 |
con22 |
con222 |
| 2.743496 |
2.599957 |
a |
serie 1 |
con3 |
con32 |
con33 |
| 2.743649 |
2.600801 |
a |
conjunto2 |
con3 |
con32 |
con33 |
| 2.781123 |
2.635683 |
a |
conjunto3 |
con3 |
con32 |
con33 |
| 2.642537 |
2.81284 |
b |
serie 1 |
con3 |
con32 |
con33 |
| 2.642594 |
2.813286 |
b |
conjunto2 |
con3 |
con32 |
con33 |
| 2.681623 |
2.847156 |
b |
conjunto3 |
con3 |
con32 |
con33 |
| 2.743496 |
3.047294 |
C |
serie 1 |
con3 |
con32 |
con33 |
| 2.743649 |
3.047436 |
C |
conjunto2 |
con3 |
con32 |
con33 |
| 2.781123 |
3.075375 |
C |
conjunto3 |
con3 |
con32 |
con33 |
| 2.975594 |
3.139697 |
d |
serie 1 |
con3 |
con32 |
con33 |
| 2.97593 |
3.139775 |
d |
conjunto2 |
con3 |
con32 |
con33 |
| 3.011277 |
3.166229 |
d |
conjunto3 |
con3 |
con32 |
con33 |
| 3.240016 |
3.047294 |
mi |
serie 1 |
con3 |
con32 |
con33 |
| 3.240306 |
3.047436 |
mi |
conjunto2 |
con3 |
con32 |
con33 |
| 3.26574 |
3.075375 |
mi |
conjunto3 |
con3 |
con32 |
con33 |
| 3.341745 |
2.81284 |
F |
serie 1 |
con3 |
con32 |
con33 |
| 3.342073 |
2.813286 |
F |
conjunto2 |
con3 |
con32 |
con33 |
| 3.364802 |
2.847156 |
F |
conjunto3 |
con3 |
con32 |
con33 |
| 3.240016 |
2.599957 |
gramo |
serie 1 |
con3 |
con32 |
con33 |
| 3.240306 |
2.600801 |
gramo |
conjunto2 |
con3 |
con32 |
con33 |
| 3.26574 |
2.635683 |
gramo |
conjunto3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.50897 |
h |
serie 1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.510079 |
h |
conjunto2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.545856 |
h |
conjunto3 |
con3 |
con32 |
con33 |
| 2.975594 |
2.81284 |
i |
serie 1 |
con3 |
con32 |
con33 |
| 2.97593 |
2.813286 |
i |
conjunto2 |
con3 |
con32 |
con33 |
| 3.011277 |
2.847156 |
i |
conjunto3 |
con3 |
con32 |
con33 |
Re: Conectar puntos de datos usando JSLSi se agrega un script de gráficos simple al objeto Graph Builder, puede obtener lo que desea

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 );
);
);
Re: Conectar puntos de datos usando JSLaqui estan los datos
| eje x | eje y | etiqueta | leyenda |
| 2.3856 | 2.2608 | a | serie 1 |
| 2.3858 | 2.2616 | a | conjunto2 |
| 2.4184 | 2.2919 | a | conjunto3 |
| 2.2979 | 2.4459 | b | serie 1 |
| 2.2979 | 2.4463 | b | conjunto2 |
| 2.3318 | 2.4758 | b | conjunto3 |
| 2.3856 | 2.6498 | C | serie 1 |
| 2.3858 | 2.6499 | C | conjunto2 |
| 2.4184 | 2.6742 | C | conjunto3 |
| 2.5875 | 2.7302 | d | serie 1 |
| 2.5878 | 2.7302 | d | conjunto2 |
| 2.6185 | 2.7532 | d | conjunto3 |
| 2.8174 | 2.6498 | mi | serie 1 |
| 2.8177 | 2.6499 | mi | conjunto2 |
| 2.8398 | 2.6742 | mi | conjunto3 |
| 2.9059 | 2.4459 | F | serie 1 |
| 2.9062 | 2.4463 | F | conjunto2 |
| 2.9259 | 2.4758 | F | conjunto3 |
| 2.8174 | 2.2608 | gramo | serie 1 |
| 2.8177 | 2.2616 | gramo | conjunto2 |
| 2.8398 | 2.2919 | gramo | conjunto3 |
| 2.5875 | 2.1817 | h | serie 1 |
| 2.5878 | 2.1827 | h | conjunto2 |
| 2.6185 | 2.2138 | h | conjunto3 |
| 2.5875 | 2.4459 | i | serie 1 |
| 2.5878 | 2.4463 | i | conjunto2 |
| 2.6185 | 2.4758 | i | conjunto3 |
Estoy intentando conectar puntos de datos para cada conjunto pero sin incluir el grupo "i" (los datos centrales). La instantánea de muestra está a continuación.

Gracias de antemano por su ayuda.
Re: Conectar puntos de datos usando JSL¿Puede proporcionarnos los datos a partir de los cuales está creando los gráficos?
Re: Conectar puntos de datos usando JSLGracias por tu aporte pero no pude encontrar lo que estaba buscando. Veo una función de línea diferente y muestra todo para una coordenada determinada. Mi pregunta era más sobre cómo encontrar esas coordenadas [marco y no datos (x,y)] para un punto de datos determinado en el gráfico. Pude conectarme usando el generador de gráficos, pero luego también conecta los puntos de datos centrales que no quiero. Si excluyo, entonces no se muestran esos puntos de datos que tampoco quiero. Todavía puedo replicar el primer conjunto de puntos de datos para cerrar el diamante, pero no sé cómo puedo seguir mostrando los puntos de datos en el centro pero sin conectarlos. Muchas gracias.

Re: Conectar puntos de datos usando JSLPrimero, consulte Ayuda > Índice de secuencias de comandos y busque la función Line(). Luego vaya a Ayuda > Biblioteca de documentación JMP > Guía de secuencias de comandos y búsquelo nuevamente para obtener una explicación más detallada y más ejemplos.