Hola,
Quiero construir un gráfico que muestre el acumulado de solo elementos nuevos por semana de una tabla que tiene 2 columnas (ver adjunto como ejemplo). En la tabla, hay 91 tipos diferentes de frutas que se vinculan a la fecha que es del 02/01/2024 al 29/9/2024. A continuación se muestra el gráfico deseado. Los pasos que tomé hasta ahora para obtener el gráfico no parecen demasiado efectivos/eficientes. Me pregunto si alguien tiene una forma más efectiva (JSL) de hacerlo.
Pasos que usé para generar el gráfico:
1) cree una columna en la misma tabla con Fórmula (Semana del año (: Fecha)).
2) resumir la tabla N(Fruit) por Fruit y WW
3) en la tabla de resumen de 2), agregue una columna (Recuento de WW) con Fórmula (Col Min (: WW,: Fruta))
4) tabla de resumen Media (recuento de WW) por fruta
5) tabla de resumen N(Media(Recuento de WW)) por Media(Recuento de WW). Luego agrego manualmente filas con valor = 0 a cualquier WW faltante porque esa semana no tiene fruta nueva. Esta es la tabla que usé para construir el gráfico usando statistic = acumulativo.

Todo lo que hice para crear el JSL para su gráfico fue seguir los pasos indicados y copiar el JSL del registro que produjo JMP.Agregué un pequeño código original para resolver la adición de ceros en cualquier semana laboral en la que no haya frutos nuevos, pero aparte de eso, JMP creó el JSL, no yo.

names default to here(1);
dt=data table("Fruit by date");
// New column: Column 3
Data Table( "Fruit by date" ) << New Column( "WW",
Numeric,
"ordinal",
Format( "Best", 12 ),
formula(week of year(:date))
);
// Data table summary
// → Data Table( "Fruit by date (1) By (Fruit, WW)" )
Data Table( "Fruit by date" ) << Summary(
Group( :Fruit, :WW ),
N( :Fruit ),
Freq( "None" ),
Weight( "None" )
);
// Change column formula: Count of WW
Data Table( "Fruit by date By (Fruit, WW)")<<
New column("Count of WW", Formula( Col Minimum( :WW, :Fruit ) ));
// Data table summary
// → Data Table( "Fruit by date By (Fruit, WW) By (Fruit)" )
Data Table( "Fruit by date By (Fruit, WW)" ) <<
Summary( Group( :Fruit ), Mean( :Count of WW ), Freq( "None" ), Weight( "None" ) );
// Data table summary
// → Data Table( "Fruit by date By (Fruit, WW) By (Fruit) By (Mean(Count of WW))" )
Data Table( "Fruit by date By (Fruit, WW) By (Fruit)" ) <<
Summary(
Group( :"Mean(Count of WW)"n ),
N( :"Mean(Count of WW)"n ),
Freq( "None" ),
Weight( "None" )
);
// Data table summary
// → Data Table( "Fruit by date By (WW)" )
Data Table( "Fruit by date" ) << Summary(
Group( :WW ),
Freq( "None" ),
Weight( "None" ),
link to original data table(0)
);
for each row(
:N Rows = 0;
);
:WW << set name("Mean(Count of WW)");
// Update data tables
Data Table( "Fruit by date By (WW)" ) << Update(
With( Data Table( "Fruit by date By (Fruit, WW) By (Fruit) By (Mean(Count of WW))" ) ),
Match Columns( :"Mean(Count of WW)"n = :"Mean(Count of WW)"n )
);
data table("Fruit by date by (WW)") << Graph Builder(
Size( 891, 456 ),
Show Control Panel( 0 ),
Variables( X( :"Mean(Count of WW)"n ), Y( :N Rows ) ),
Elements(
Bar(
X,
Y,
Legend( 5 ),
Summary Statistic( "Cumulative Sum" ),
Label( "Label by Value" )
)
)
)