¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Agregue el texto "txt1" en la parte superior izquierda de las coordenadas de la imagen (100,100)
¡Gracias!

dt = Current Data Table();
P1 = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :sex ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) )
//, Text( Center Justified, {100, 100 }, "txt1"); ??
);Automatización y secuencias de comandosRe: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Dispatch(
{},
"Graph Builder",
FrameBox( 2 ),
{Add Graphics Script(
9,
Description( "" ),
Text( Center Justified, {20, 70}, Char( gm ) || "——" || na9 )
)}
),Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Hay un par de formas de hacer lo que quieras.Puede utilizar Anotaciones o puede utilizar un Script gráfico.

Con Anotación, usted especifica el Texto y la ubicación del Cuadro de Texto.En el JSL a continuación, agregué la Anotación dentro de la definición del JSL Graph Builder.Como puede verse, la ubicación del cuadro de texto está determinada por lo que recuerdo como la ubicación del píxel dentro del cuadro de marco.
Agregue el uso de Graphics Script, utiliza los valores reales de los ejes X e Y para su ubicación.Sin embargo, esto no es muy sencillo con su gráfico.Dado que ambos ejes no son columnas Continuas, sino Ordinal y Nominal, JMP asigna valores enteros a cada uno de los niveles que se encuentran en los datos, comenzando por 0. Por lo tanto, como hay 6 niveles de Edad, el eje X va de 0 a 5. Por lo tanto, al hacer referencia al valor X en la función Text(), debe estar dentro del rango de -0,5 a 5,5 para que sea visible.De manera similar, el valor del eje Y debe estar entre -0,5 y 1,5. Si una columna utilizada en el gráfico es Continua, los valores reales de los datos se utilizan en la especificación de ubicación X,Y.Para este ejemplo, utilicé << Add Graphics Script() como ejecución posterior de la plataforma para agregar el gráfico al Frame Box().Vea abajo.
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :sex ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Text Annotation(
Text( "Using Annotation" ),
Fixed Size( 0 ),
Text Box( {169, 137, 224, 200} ),
Font( "Segoe UI", 14, "Bold" ),
Filled( 0 )
), Add Text Annotation(
Text( "" ),
Fixed Size( 0 ),
Text Box( {269, 171, 286, 179} ),
Filled( 0 )
)}
)
)
);
Report( gb )[framebox( 1 )] << add graphics script(
Text Font( "Arial", 14, "Bold" );
Text( Center Justified, {1.5, .90}, "Using Add Graphics" );
);
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Todavía no he aprendido a agregar texto a mis dibujos.
Por ejemplo, ¿cómo agregar texto desde la esquina superior izquierda 100, 100?
¡Gracias expertos!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
p1 = dt << Graph Builder(
Size( 507, 440 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ), Color( :sex ) ),
Elements( Bar( X, Y, Legend( 5 ), Bar Style( "Needle" ), Response Axis( "X" ) ) ),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Labels( 0 ), Show Major Ticks( 0 ),
Show Minor Ticks( 0 )}
)}
),
Dispatch(
{},
"height",
ScaleBox,
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Labels( 0 ), Show Major Ticks( 0 ),
Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Big Class" )} ),
Dispatch( {}, "X title", TextEditBox, {Hide( 1 )} ),
Dispatch( {}, "Y title", TextEditBox, {Hide( 1 )} )
)
);
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?A continuación se muestra una modificación a su secuencia de comandos que agrega una anotación al gráfico colocando un cuadro de texto() en 100,100, con el texto "Clase grande".Las funciones de anotación utilizan píxeles para colocar los valores.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 776, 457 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ), Color( :sex ) ),
Elements(
Bar( X, Y, Legend( 5 ), Bar Style( "Needle" ), Response Axis( "X" ) )
),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Labels( 0 ),
Show Major Ticks( 0 ), Show Minor Ticks( 0 )}
)}
),
Dispatch(
{},
"height",
ScaleBox,
{Label Row(
{Automatic Tick Marks( 0 ), Show Major Labels( 0 ),
Show Major Ticks( 0 ), Show Minor Ticks( 0 )}
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Big Class" )} ),
Dispatch( {}, "X title", TextEditBox, {Hide( 1 )} ),
Dispatch( {}, "Y title", TextEditBox, {Hide( 1 )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
Add Text Annotation(
Text( "Big Class" ),
Fixed Size( 0 ),
Text Box( {100,100, 150, 150} ),
Filled( 0 )
)
)
)
);
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?El texto agregado a través del cuadro de texto no se puede guardar en ningún otro lugar con la imagen original.
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?¿Qué quieres decir con guardar en otro lugar con la imagen original?
¿El texto parece estar bien guardado con esta imagen?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(776, 457),
Show Control Panel(0),
Show Legend(0),
Variables(X(:weight), Y(:height), Color(:sex)),
Elements(Bar(X, Y, Legend(5), Bar Style("Needle"), Response Axis("X"))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Label Row({Automatic Tick Marks(0), Show Major Labels(0), Show Major Ticks(0), Show Minor Ticks(0)})}
),
Dispatch(
{},
"height",
ScaleBox,
{Label Row({Automatic Tick Marks(0), Show Major Labels(0), Show Major Ticks(0), Show Minor Ticks(0)})}
),
Dispatch({}, "graph title", TextEditBox, {Set Text("Big Class")}),
Dispatch({}, "X title", TextEditBox, {Hide(1)}),
Dispatch({}, "Y title", TextEditBox, {Hide(1)}),
Dispatch(
{},
"Graph Builder",
FrameBox,
Add Text Annotation(Text("Big Class"), Fixed Size(0), Text Box({100, 100, 150, 150}), Filled(0))
)
)
);
pic = gb << Get Picture;
gb << Close Window;
Close(dt, no save);
nw = new window("",
pic
);
pic << Save Picture("$TEMP/textbox.png", "PNG");
Open("$TEMP/textbox.png");Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?¿Dónde estás intentando guardar la imagen?El siguiente JSL se guarda en varios lugares y el texto agregado se guarda con la imagen.
report(gb)<<JOURNAL></JOURNAL>
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?¿Cómo se puede utilizar el jsl?
¡Gracias Jim!
</CODE></P><P><CODE class=" language-jsl">
,SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script( 2, Description:( "" ), Text( Center Justified, {50, 50}, "Big Class" ) )}
)
);</CODE></P></LINGO-BODY><LINGO-SUB id="lingo-sub-703023" slang="en-US" mode="NONE">Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?</LINGO-SUB><LINGO-BODY id="lingo-body-703023" slang="en-US" mode="NONE"><PRE><CODE class=" language-jsl">nw = Report( gb )[Graph Builder Box( 1 )];
dy = New Table( "K", Add Rows( 2 ), New Column( "A", Expression ), New Column( "B", Expression ) );
dy[1, 1] = nw;
Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Veo
gb << Obtener imagen;
Hay que cortar el exceso.

Re: ¿Cómo agregar texto a un gráfico después de dibujar usando JSL?Puede eliminar la configuración del eje y luego copiar la imagen. Vaya de forma interactiva a Configuración de ejes y luego podrá eliminar los ejes.Luego guarde el script para ver cuál es el JLS para eliminar los ejes.