¿Cómo guardar cada gráfico de una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmp?Hola a todos,
He guardado el script del generador de gráficos para producir el gráfico deseado. He arrastrado mis variables y arrastré mi lista (: Muestra) a Wrap para producir el mismo gráfico para cada categoría. Estoy tratando de encontrar una manera de imprimir el mismo tipo de gráfico para todos. El problema es que la ejecución del script desde el generador de gráficos solo producirá un gráfico (lo que ocurra primero). Pensé que necesitaría un Loop y he escrito a continuación, pero no funciona. ¿Hay alguien que pueda darme algunas pistas sobre cómo hacer esto o si me puede decir qué estoy haciendo mal?
for(g=1, g<=N items(::Sample), g++,
For(i=1,i<=N items(Eval(::Sample[g])), i++,
gb= dt4 << Graph Builder(
Size( 894, 625 ),
Legend Position( "Bottom" ),
Show Title( 0 ),
Variables(
X( :Days ),
Y( :Model Biogas yield ),
Y( :Biogas Yield, Position( 1 ) ),
Group X( :Sample, Show Title( 0 ), N View Levels( 1 ) )
),
Elements(
Points( X, Y( 2 ), Legend( 14 ), Jitter Limit( 1.1193 ) ),
Smoother( X, Y( 1 ), Legend( 15 ) )
),
SendToReport(
Dispatch(
{},
"Days",
ScaleBox,
{Min( 0 ), Max( 21 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row(
{Inside Ticks( 1 ), Set Font( "Calibri" ), Set Font Size( 14 )}
)}
),
Dispatch(
{},
"Model Biogas yield",
ScaleBox,
{Min( 0 ), Max( 700 ), Inc( 50 ), Minor Ticks( 0 ),
Label Row(
{Inside Ticks( 1 ), Set Font( "Calibri" ), Set Font Size( 14 )}
)}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
14,
Level Name( 0, "Experimental", Item ID( "Biogas Yield", 1 ) ),
Properties( 0, {Marker Size( 5 )}, Item ID( "Biogas Yield", 1 ) )
), Legend Model(
15,
Level Name( 0, "Model", Item ID( "Smooth(Model Biogas yield)", 1 ) ),
Properties(
0,
{Line Color( 32 ), Line Width( 3 )},
Item ID( "Smooth(Model Biogas yield)", 1 )
)
)}
),
Dispatch(
{},
"X title",
TextEditBox,
{Set Font( "Calibri" ), Set Font Size( 14 )}
),
Dispatch(
{},
"Y title",
TextEditBox,
{Set Font( "Calibri" ), Set Font Size( 14 ),
Set Text( "Biogas yield (m3/t VS)" )}
)
)
);
gb<< Save picture ("C:\data\Graph Builder_" || ::Sample[g]||".jpg", JPEG);
););
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpSí, quiero guardar el gráfico individual en un archivo de imagen individual que puede estar en cualquier plataforma MS como se describe a continuación.Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpHola Phil y Jim,
Usando el ejemplo de la clase grande. Si quisiera trazar el peso frente a la altura por sexo, tendría la siguiente secuencia de comandos del generador de gráficos:
dt= Open ("C:\Program Files\SAS\JMP\14\Samples\Data\Big Class.JMP");
dt<< Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :sex, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
Lo que quiero hacer es guardar el gráfico resultante para cada uno: Sexo. ¿Cómo puedo hacer eso?
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmp
¿Cómo es esto como un ejemplo del tipo de cosas que quieres hacer?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 564, 350 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :sex ) ),
Elements( Line Of Fit( X, Y, Legend( 8 ) ), Points( X, Y, Legend( 9 ) ) )
);
¿Y desea guardar la altura frente al peso para cada nivel de la variable del Grupo X como un archivo de imagen individual?
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmp¿Puede proporcionar un ejemplo más simple pero más completo de lo que está tratando de hacer? Tal vez utilizando los datos de Big Class. Será más fácil para los miembros de la comunidad ayudar si explica la situación y la pregunta de manera más clara y general, de modo que cualquier solución sea de utilidad para otros.
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpLa "Muestra" es del código que proporcionó a esta discusión. Así que no puedo ayudarte con tu pregunta. En su código, no mostró dónde se creó "Muestra". Simplemente aparece en el código.
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpHe intentado: Muestra y :: Muestra como se muestra a continuación y he ejecutado el depurador JSL:
for(g=1, g<=N items(:sample), print(:sample),
For(i=1,i<=N items(Eval(:Sample[g])), i++,
gb= dt4 << Graph Builder(
Size( 894, 625 ),
Legend Position( "Bottom" ),
Show Title( 0 ),
Variables(
X( :Days ),
Y( :Model Biogas yield ),
Y( :Biogas Yield, Position( 1 ) ),
Group X( :Sample, Show Title( 0 ), N View Levels( 1 ) )
Cuando uso: Ejemplo, obtengo el error N elementos () debe ser una lista.
Cuando uso :: Muestra, obtengo el error Nombre sin resolver: Muestra en el acceso de la evaluación de 'muestra', :: muestra / * ## * /
No estoy seguro de dónde buscar el valor?
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpLa referencia a
::sample
es una referencia a una variable de memoria JSL, no a una columna
Si quieres referirte a una columna que especificarías
:sample
// or
dt4:sample
// or if referring to a specific row value, like row 7's value
dt4:sample[7]
Ejecute el script y coloque la siguiente línea delante de su primer bucle For ()
print(::sample);
y luego mirar en el registro, y ver qué valor tiene.
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpHe adjuntado una sesión de pantalla del dt.

Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpPuede que esté llamando a la cosa incorrecta. Todavía me estoy familiarizando con estos términos. Es un personaje nominal. Para cada grupo de variables hay un carácter nominal. Básicamente una columna llamada Muestra que coincide con un grupo de variables. Es básicamente una cuarta variable. Entonces, ¿supongo que también necesitaría usar una oración condicional en este caso?Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpDe acuerdo ... Intentaré ser más específico ... No veo cómo está utilizando una lista de JSL y cómo funciona. Todavía me gustaría ver exactamente cuál es su variable. :: valor de la muestra es. Aquí es por qué:
Si su :: muestra es una lista de caracteres
::sample = {"one", "Two", "three"};
For( g = 1, g <= N Items( ::Sample ), g++,
For( i = 1, i <= N Items( Eval( ::Sample[g] ) ), i++,
Print( "C:\data\Graph Builder_" || ::Sample[g] || ".jpg" )
)
);
El código falla con el siguiente error:
::sample = {"one", "Two", "three"};
For( g = 1, g <= N Items( ::Sample ), g++,
For( i = 1, i <= N Items( Eval( ::Sample[g] ) ), i++,
Print( "C:\data\Graph Builder_" || ::Sample[g] || ".jpg" )
)
);
/*:
N Items() argument must be a list
Si la lista es una lista numérica de valores
::sample = {1, 2, 3};
For( g = 1, g <= N Items( ::Sample ), g++,
Print( "C:\data\Graph Builder_" || ::Sample[g] || ".jpg" )
);
El código fallará cuando intentes concatenar la cadena en tu imagen guardada
argument should be character in access or evaluation of 'Concat' , Bad Argument( ::Sample[g] ), "C:\data\Graph Builder_" || /*###*/::Sample[g] || /*###*/".jpg" /*###*/
In the following script, error marked by /*###*/
::sample = {1, 2, 3};
For( g = 1, g <= N Items( ::Sample ), g++,
Print(
"C:\data\Graph Builder_" || /*###*/::Sample[g] || /*###*/".jpg" /*###*/
)
);
Por eso me gustaría ver exactamente lo que contiene su :: lista de muestra ......
Eso también ayudaría a interpretar cuál es el propósito de tus 2 bucles.
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpSí, es una lista JSL
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpEstá bien, pero una vez más le pediré que muestre cuál es la variable :: Muestra. ¿Es una lista JSL, o una variable de carácter? ¿Cuál es su valor?Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpMe gustaría mantener el mismo gráfico. Solo quiero guardar el gráfico 12 veces o guardarlo por: Muestra de manera independiente y guardarlo en un archivo que tenga el nombre correspondiente en: Muestra. ¿Tiene sentido?
Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpEl código del generador de gráficos que ha especificado solo produce un gráfico. Y cuando recorres g y yo, no estás cambiando nada en la especificación de Graph Builder, eso indicaría que quieres algo diferente en el gráfico que se produce. ¿Qué esperas cambiar de una gráfica a otra?Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmpNo es un valor sino nombres de 12 categorías. Cada uno tendrá gráfica.Re: Cómo guardar cada gráfico desde una sola ventana en el generador de gráficos en un formato de archivo diferente al de jmp¿Puede proporcionar cuál es el valor de :: Muestra? Parece que estás escribiendo sobre el mismo archivo varias veces ...