JSL > Générateur de graphiques > Script graphique > Couleur et transparence du fond du texte ?Bonjour la communauté JMP,
Je cherche à définir une couleur de fond et une transparence pour du texte ajouté dynamiquement via un script graphique (voir ci-dessous), mais je n'ai pas encore trouvé la méthode appropriée. De plus, je souhaite que le texte et son fond apparaissent au premier plan du graphique GB afin d'atténuer la visibilité des éléments qui le chevauchent.
Comme vous l'avez peut-être vu dans un article précédent, je pensais que dessiner un polygone rectangulaire derrière le texte suffirait, mais les éléments du graphique sont dessinés par-dessus le polygone, ce qui rend l'exercice inutile.
Voici un exemple d'une itération du script graphique :
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" );
Étant donné que je pourrais devoir adopter une approche complètement différente, vos commentaires seraient très appréciés.
Meilleur,
TS
Personnalisation de masseRe : JSL > Générateur de graphiques > Script graphique > ; Couleur d'arrière-plan du texte et transparence ?Le script graphique est évalué une fois que la boîte de cadre a terminé le rendu des éléments du générateur de graphiques tels que les points et les lignes. Ainsi, les éléments graphiques supplémentaires sont dessinés, dans l'ordre, sur le contenu d'origine.
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" );
);
J'ai utilisé un gris clair au lieu de changer la transparence car une autre façon d'afficher le texte avec un arrière-plan. J'ai interprété votre demande selon laquelle vous souhaitez masquer n'importe quelle partie du rendu d'origine au lieu d'un masquage partiel.
Re : JSL > Générateur de graphiques > Script graphique > ; Couleur d'arrière-plan du texte et transparence ?L'utilisation de l'élément Position sur le message Ajouter un script graphique permet de définir explicitement l'ordre d'affichage d'un élément graphique sur le graphique.Vous trouverez ci-dessous 2 tracés de Graph Builder dont la seule chose modifiée est l'inversion de la position Ajouter un script graphique de 6 à 5, puis de 5 à 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] );
);