JSL > Graph Builder > Grafikskript > Hintergrundfarbe und Transparenz des Textes?Hallo JMP-Community,
Ich versuche, dynamisch hinzugefügtem Text über ein Grafikskript (siehe unten) eine Hintergrundfarbe und Transparenz zuzuweisen, konnte jedoch nicht den richtigen Ansatz dafür finden. Außerdem möchte ich den Text und seinen Hintergrund als oberste Ebene im GB-Plot haben, um alle Plotelemente abzudunkeln, die sich mit dem Text überschneiden.
Wie Sie vielleicht in einem früheren Beitrag gesehen haben, dachte ich, dass das Zeichnen eines rechteckigen Polygons hinter dem Text ausreichen würde, aber die Plotelemente werden über 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" );In Anbetracht dessen, dass ich möglicherweise einen völlig anderen Ansatz wählen muss, würde ich mich über Ihr Feedback freuen.
Am besten,
TS
GrafikSkripterstellungRe: 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, dass die Position von Add Graphics Script von 6 auf 5 und dann auf 5 auf 6 umgekehrt wurde.

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] );
);