JSL > Graph Builder > Grafikskript > Texthintergrundfarbe und Transparenz?Hallo JMP-Community,
Ich versuche, dynamisch hinzugefügtem Text über ein Grafikskript (siehe unten) eine Hintergrundfarbe und Transparenz zuzuweisen, habe aber noch nicht die passende Methode gefunden. Außerdem möchte ich, dass der Text und sein Hintergrund in einem GB-Plot die oberste Ebene bilden, um alle Plotelemente, die sich mit dem Text überlappen, abzudunkeln.
Wie Sie vielleicht in einem früheren Beitrag gesehen haben, dachte ich, dass das Zeichnen eines rechteckigen Polygons hinter dem Text den gewünschten Effekt erzielen würde, aber die Handlungselemente sind auf dem Polygon gezeichnet, was die Übung sinnlos macht.
Hier ist ein Beispiel für eine Iteration des Grafikskripts:
Fill Color( "blue" );
Transparency( 0.6 );
Polygon( {-1, 5.5}, {-1, 4.45}, {4.5, 4.45}, {4.5, 5.5} );
Transparency( 1 );
Text Size( 14 );
Text Color( "black" );
Text( right Justified, {4, 5.15}, "r: 0.0072" );
Text Color( "black" );
Text( right Justified, {4, 4.8}, "BH p: 0.9194" );
Da ich möglicherweise einen ganz anderen Ansatz wählen muss, würde ich mich über Ihr Feedback sehr freuen.
Am besten,
TS
MassenanpassungRe: JSL > Graph Builder > Grafikskript > Hintergrundfarbe und Transparenz des Textes?Das Grafikskript wird ausgewertet, nachdem die Rahmenbox das Rendern von Graph Builder-Elementen wie Punkten und Linien beendet hat. Die zusätzlichen grafischen Elemente werden also der Reihe nach über den ursprünglichen Inhalt gezogen.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
Report( gb )[FrameBox(1)] << Add Graphics Script(
Fill Color( 33 );
// Transparency( 0.2 );
Rect( 63, 105, 67, 97, 1 );
// Transparency( 1 );
Text Color( "Red" );
Text( Center Justified, {65, 100}, "Centered" );
);
Ich habe ein helles Grau verwendet, anstatt die Transparenz zu ändern, um den Text auf andere Weise mit einem Hintergrund anzuzeigen. Ich habe Ihre Anfrage dahingehend interpretiert, dass Sie einen Teil des ursprünglichen Renderings ausblenden möchten, anstatt ihn teilweise zu maskieren.
Re: JSL > Graph Builder > Grafikskript > Hintergrundfarbe und Transparenz des Textes?Mit dem Element Position in der Nachricht Grafikskript hinzufügen kann man explizit die Reihenfolge festlegen, in der ein Grafikelement auf dem Diagramm angezeigt wird.Unten sind 2 Graph Builder-Plots mit der einzigen Änderung, die Umkehrung der Add Graphics Script-Position von 6 auf 5 und dann auf 5 auf 6.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) ),
show control panel( 0 )
);
Report( gb )[axisbox( 1 )] << Min( 25 );
fgb = Report( gb )[framebox( 1 )];
fgb << Add Graphics Script(
6,
Description( "" ),
Text Color( "black" );
Text( right Justified, {45, 60}, "r: 0.0072" );
);
fgb << Add Graphics Script(
5,
Description( "" ),
Fill Color( "red" );
Transparency( .5 );
Polygon( [10 30 90], [88 22 44] );
);
gb = Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) ),
show control panel( 0 )
);
Report( gb )[axisbox( 1 )] << Min( 25 );
fgb = Report( gb )[framebox( 1 )];
fgb << Add Graphics Script(
5,
Description( "" ),
Text Color( "black" );
Text( right Justified, {45, 60}, "r: 0.0072" );
);
fgb << Add Graphics Script(
8,
Description( "" ),
Fill Color( "red" );
Transparency( .5 );
Polygon( [10 30 90], [88 22 44] );
);