guardar gráficos como PNG o JPEGHola,
Creé un script que le permite al usuario seleccionar un archivo de Excel, procesarlo, agregarle o formularle columnas, abrir el generador de gráficos y trazarlo con un filtro de datos local.
Mi pregunta es:
1. ¿Cómo guardo gráficos eligiendo la opción de filtro de datos locales usando el script? Por ejemplo, tengo 2 filtros de datos locales, digamos Trimset (10, 100, 101, 110, 111, 1000, 11111) y fórmula (sí o no) y necesito trazar gráficos como (Todos los valores trimset con fórmula NO) y (Cada uno de los valores trimset con fórmula SI) .. así un total de 8 gráficos.
2. En mi gráfico, quiero que se incluya la declaración debajo del gráfico "Donde está Trimset... y la fórmula es NO".
3. Guarde gráficos en una carpeta en archivos png o jpeg
4. La tabla de datos JMP y las tablas del generador de gráficos salen sin guardar.
5. ¿Cómo hacer una función adicional para que sea una operación de un solo clic porque necesito hacer esto para 100 o más archivos?
He estado leyendo todas las discusiones pero no soy capaz de obtener la respuesta correcta. Realmente aprecio tu ayuda.
Gracias
Re: guardar gráficos como PNG o JPEGSí, hay un bucle For disponible.JSL es un lenguaje muy completo, con toda la funcionalidad que uno esperaría de un lenguaje de programación.
Le sugiero que lea los primeros capítulos de la Guía de secuencias de comandos, para que pueda tener una idea de todos los componentes del lenguaje y cómo implementarlos.
Si pudiera darme un poco de información sobre los lenguajes de computadora con los que trabaja, me ayudaría a proporcionarle ejemplos de JSL en términos con los que esté familiarizado.
Re: guardar gráficos como PNG o JPEGGracias txnelson por la respuesta. Fue muy útil. Si quisiera hacer un bucle for en un filtro de datos, ¿es posible hacerlo? Que puede pasar automáticamente por cada condición y trazar los gráficos. Como sugirió, examinaré la función Complemento en la guía de secuencias de comandos.Re: guardar gráficos como PNG o JPEGAquí hay un enfoque diferente, sin usar el filtro de datos:
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
deletedirectory("$temp/myPics");
createDirectory("$temp/myPics");
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
eval(evalexpr(biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Automatic Recalc( 1 ),
Fit Line( {Line Color( {213, 72, 87} )} ),
where( age == expr(thisAge) & sex == expr(thisSex) )
)));
parentBox = Report( biv ) << parent;
picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
biv<<CLOSEWINDOW></CLOSEWINDOW>
Files In Directory("$temp/myPics") = {"age12sexF.png", "age12sexM.png", "age13sexF.png", "age13sexM.png", "age14sexF.png", "age14sexM.png", "age15sexF.png", "age15sexM.png", "age16sexF.png", "age16sexM.png", "age17sexF.png", "age17sexM.png"};
where clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphdonde cláusula arriba del gráfico
En este caso, la cláusula where está por encima de la salida de la plataforma, por lo que utilicé el método <
Re: guardar gráficos como PNG o JPEGMi primer punto es que no debería estar leyendo las Discusiones para aprender a programar JMP.Debería estar leyendo la Guía de secuencias de comandos de JSL.
Ayuda==>Libros==>Guía de secuencias de comandos
Entonces, si no puede hacer que las cosas funcionen, la comunidad de discusión es un gran recurso para ayudarlo.
Déjame tomar un wack en las preguntas que haces.
1. ¿Cómo usa un filtro de datos local y luego guarda la salida?
A continuación se muestra un script crudo que le mostrará cómo hacer esto de una manera muy poco elegante.
dt=Open(<PATH to="" your="" data="https://community.jmp.com/" table="">);
gb=Graph Builder(
Size( 527, 453 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 13 ) ), Smoother( X, Y, Legend( 14 ) ) )
);
Thefilter=gb<<LOCAL data="https://community.jmp.com/" filter=""></LOCAL></PATH>
El código para el generador de gráficos y cada uno de los filtros locales está disponible debajo de los triángulos rojos.Si los seleccionas y vas a "Guardar Script" obtendrás el código requerido para los diferentes casos que tengas.Simplemente inicie Graph Builder.Luego guarde el script para el generador de gráficos.Luego abra el filtro local.Configúrelo en su primer caso (cláusulas where) y luego guarde su script.A continuación, cambie el filtro local al siguiente caso y guarde su script... etc.
2. La declaración debajo del gráfico se guarda en el png
3. Solo necesita especificar en la función Guardar imagen la ruta.Esto se puede manejar programáticamente para que pueda seguir cualquier método de nomenclatura que desee usar.
4. El script de muestra muestra el método para hacer esto
5. Hay muy buena documentación en la Guía de secuencias de comandos sobre cómo crear un complemento.Es una respuesta demasiado larga para ser manejada en la Discusión.
Re: guardar gráficos como PNG o JPEGEste código agrega un pequeño menú a cualquier filtro de datos. - seleccione sus columnas y haga clic en Aceptar para recorrer las entradas y guardar automáticamente el gráfico de GraphBuilder.
(las columnas con valores continuos no se enumeran)

Names Default to HERE(1);
if(not(namespaceExists("autoAnimate")),New NameSpace("autoAnimate"));
autoAnimate:update = function({},
Try (autoAnimate:DFTopLB = Current Report()["Local Data Filter", List Box( 1 )], stop());
Try(autoAnimate:myDFTPBs = (Current Report()["Local Data Filter", Lineup Ruler Box( 1 ), List Box( 1 )] << Xpath( "//TabPageBox" )),stop());
// collect Data Fitlers with ListBoxes, remove the continuos ones.
autoAnimate:myDFLBs ={};
For Each ( {TPB,i}, autoAnimate:myDFTPBs, tmp=(TPB << xpath( "//ListBoxBox" ));If(NItems(tmp),Insert Into(autoAnimate:myDFLBs,tmp[1]),Remove from(autoAnimate:myDFTPBs,i) ));
// which columns are used?
autoAnimate:DFCols = Transform Each( {TPB}, autoAnimate:myDFTPBs, Trim( Word( 1, TPB << Get Title, "(" ) ) );
// what are the entries? (for the filename)
autoAnimate:myDFLBItems = autoAnimate:myDFLBs << get items;
// how many entries?
autoAnimate:myDFLBNItems = Transform Each( {items}, autoAnimate:myDFLBItems, N Items( items ) );
// variales for the for loops
chars = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii"};
// append a Display Box:
Try(autoAnimate:animatePane << delete);
autoAnimate:DFTopLB << append( autoAnimate:animatePane = V List Box (Spacer Box( size( 0, 20 ) ),Panel Box( "cycle selected + save", V List Box( colSelection = List Box( autoAnimate:DFCols ), H List Box( Button Box("update",autoAnimate:update()),Spacer Box (size(40,0)),Button Box( "start", autoAnimate:animateNsave() ) )) ) ));
);
autoAnimate:animateNsave = Function( {},
// which DFs are selected?
selectedCols = colselection << Get Selected Indices;
// compose the expression
expression = "";
xx=1;
// for loop for every active DF:
For( i = 1, i <= N Items( autoAnimate:myDFTPBs ), i++,
expression = expression || If( Contains( selectedCols, i ),
"For(" || chars[i] || "=1," || chars[i] || "<=" || Char( autoAnimate:myDFLBNItems[i] ) || "," || chars[i] || "++,__LB" || Char( i ) ||
"__ << clear selection << set selected(" || chars[i] || ");",
"if(1,"
)
);
// save current Graph builder Plot -- how about other reports?
expression = expression || "wait();(current report()<< XPath(\!"//OutlineBox[@helpKey='Graph Builder']\!"))<<SAVE picture=""></SAVE>Re: guardar gráficos como PNG o JPEG@hogi , ¡este script es fantástico! Comparto los resultados de mis análisis con muchos usuarios que no utilizan JMP y es muy útil tener este menú agregado a cualquier gráfico con un filtro de datos local.
*Puede resultar útil para los principiantes tener en cuenta que el script de @hogi es independiente y se puede agregar a una tabla de datos (usando el triángulo rojo en la parte superior del panel izquierdo de la tabla de datos y seleccionando "Nuevo script"). Luego, cuando ejecute este script, agregará el pequeño menú al informe activo actual que ya tiene aplicado un filtro de datos local.
Re: guardar gráficos como PNG o JPEGAhora es más fácil : )
Agregué la funcionalidad a la barra de herramientas del generador de gráficos *)
*) ahora disponible a través del mercado:
https://marketplace.jmp.com/appdetails/Graph%20Builder%20Toolbar

Re: guardar gráficos como PNG o JPEG...pero sigue siendo la versión con el mismo error.
Si desea acelerarlo, cambie el argumento de wait() de () a ( 0) :
