JSL > Générateur de graphes > Script graphique > Couleur d'arrière-plan du texte et transparence ?Salut la communauté JMP,
J'essaie d'attribuer une couleur d'arrière-plan et une transparence au texte ajouté dynamiquement via un script graphique (voir ci-dessous) mais je n'ai pas trouvé la bonne approche pour le faire. De plus, j'aimerais que le texte et son arrière-plan soient la couche supérieure de l'intrigue GB pour atténuer tous les éléments de l'intrigue qui se chevauchent avec le texte.
Comme vous l'avez peut-être vu dans un article précédent, je pensais que dessiner un polygone rectangulaire derrière le texte ferait l'affaire, mais les éléments de l'intrigue sont dessinés au-dessus du polygone, ce qui rend l'exercice futile.
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 devrai peut-être adopter une approche complètement différente, j'apprécierais tous vos commentaires.
Meilleur,
TS
GraphiqueScriptRe : 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] );
);