Générateur de graphiques y = x Ligne non liée à un graphique spécifiqueJ'essaie de travailler dans Graph Builder pour créer une ligne avec JSL de corrélation parfaite (y=x) pour le nuage de points. Voir ci-dessous en utilisant les données d'échantillon de Restaurant Tips comme exemple.

Lorsque je fais cela manuellement, voici le script que JMP génère :
Graph Builder(
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :Bill Amount ), Y( :Tip Amount ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Tip Amount", ScaleBox,
{Min( -0.062875 ), Max( 72.9215829464286 ), Inc( 10 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Y Function( x, x );
)}
)
)
);Notez que ceci est lié à ce graphique spécifique.
Comment puis-je rendre cela universel pour l'appliquer à n'importe quel graphique de création de graphiques sur lequel je travaille ? Mon objectif ultime est d'en faire un module complémentaire ou mieux encore un bouton sur le générateur de graphiques (si c'est possible) pour tracer cette ligne pour n'importe quel graphique sur lequel je travaille.
Il existe une vieille vidéo et quelques anciennes informations sur ce sujet dans la communauté, mais tout ce que j'ai pu trouver est lié à un graphique spécifique. Je pense que je ne comprends peut-être pas très bien le cadre de la boîte. J'ai essayé quelques variantes de script en utilisant le cadre de la boîte, mais je n'ai rien obtenu.
Merci comme toujours pour toute aide.
Automatisation et scriptsmacOSRe: Générateur de graphiques Ligne y=x non liée à un graphique spécifiqueMon application spécifique est que je dois souvent comparer des données provenant de capteurs redondants qui, idéalement, devraient fournir des données parfaitement redondantes. Bien sûr, la réalité intervient et ce n'est souvent pas le cas. Un nuage de points avec la ligne y=x est donc mon moyen rapide d'évaluer les données des deux capteurs.
Re: Générateur de graphiques Ligne y=x non liée à un graphique spécifiqueExcellente idée – je l’utilise tellement souvent !
-> Je l'ajouterai à la barre d'outils du générateur de graphiques : )
fbs = current report() << xpath("//FrameBox");
fbs << Add Graphics Script(
Pen Color( "gray" );
Y Function( x, x );
)
Re: Générateur de graphiques Ligne y=x non liée à un graphique spécifiqueCette méthode devrait vous permettre de faire ce que vous voulez
names default to here(1);
dt =
// Open Data Table: Restaurant Tips.jmp
// → Data Table( "Restaurant Tips" )
Open( "$SAMPLE_DATA/Restaurant Tips.jmp" );
Graph Builder(
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :Bill Amount ), Y( :Tip Amount ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "Tip Amount", ScaleBox,
{Min( -0.062875 ), Max( 72.9215829464286 ), Inc( 10 ), Minor Ticks( 1 )}
)
)
);
rpt = Current Report();
rpt[framebox( 1 )] << Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Y Function( x, x );
);

Re: Générateur de graphiques Ligne y=x non liée à un graphique spécifiqueMerci @hogi et @txnelson . Une fois de plus, vous êtes venus à la rescousse.
@hogi Malheureusement, je travaille sur un Mac et il ne semble pas que votre module complémentaire fonctionne sur un Mac. C'est dommage. Il a l'air génial.
@txnelson (ou en fait l'un d'entre vous...) J'ai une question sur la commande Add Graphics Script que vous avez utilisée et qui a la même syntaxe que le script JMP généré. Si cela ne va pas trop loin dans les détails, quel est le but de l'argument 2 ? La documentation sur la commande Add Graphics Script est très sommaire.
Merci encore.
Re: Générateur de graphiques Ligne y=x non liée à un graphique spécifiqueC'est la position du script, vous pouvez donc forcer l'ordre dans lequel ils sont dessinés
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
1,
Fill Color("Red");
Circle(
20,
{20, 20},
{50, 50},
{70, 80},
"FILL"
)
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
2,
Circle(
20,
{40, 20},
{40, 50},
{40, 80},
"FILL"
)
);
Comme vous le voyez dans le menu de personnalisation

Modifier : Spécifier l'ordre des éléments graphiques (jmp.com)
Re: Générateur de graphiques Ligne y=x non liée à un graphique spécifique
@hogi a écrit :
Excellente idée – je l’utilise tellement souvent !
-> Je l'ajouterai à la barre d'outils du générateur de graphiques : )
disponible maintenant:
