Commandes JSL de Graph Builder sur les élémentsBonjour,
Je ne trouve pas la syntaxe d'édition (ajouter un élément/supprimer un élément/ajouter des étiquettes à l'élément) des éléments du générateur de graphique après le graphique est prêt.
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
);
//gb[Elements(2)] << Label( "Étiquette par valeur" );// ?? // Quelle est la syntaxe de ceci ?
//gb << Ajouter un élément (Position ( 1, 3 ), Ligne ( X, Y, Légende ( 3 ) ));// ?? // Y doit être le poids
Merci
Personnalisation de masseRe : Commandes JSL de Graph Builder sur ElementsDepuis Jmp17 
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gb << Update Element(1,2,1, {Label("Label by Value")});
gb << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gb << Remove Element( 1, 3 , 1 ); //remove bar chartRe : Commandes JSL de Graph Builder sur ElementsMerci beaucoup à vous deux.
"GraphBuilderBox" est le mot-clé...
Re : Commandes JSL de Graph Builder sur Elements@tom_abramov ,
C'était moi, une erreur de syntaxe utilisateur.Elle, tu y vas.
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
report(gb)[GraphBuilderBox(1)] << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gbb = report(gb)[GraphBuilderBox(1)];
gbb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gbb << Remove Element( 1, 3 , 1 ); //remove bar chart
Re : Commandes JSL de Graph Builder sur Elements@tom_abramov ,
J'ai emprunté un long chemin différent, comme Jim, @txnelson .Ensuite, j'ai dû rire, car JMP a une solution simple avec le message
Mettre à jour Element() envoyé à GraphBuilderBox()
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
/* //hard way not recommended
//must be done while No Labels is specified
gb<< show Control Panel(1);
so_bar = report(gb)[OutlineBox("Bar[weight]")];
cb_label = so_bar << xpath("//ComboBox/ComboBoxItem[text()='No Labels']/..");
cb_label << set(2);
gb << show Control panel(0);
*/
Cependant, je rencontre un problème en ajoutant la variable :weight, ce qui est facile à faire, mais par défaut, GraphBuilder crée un autre élément de graphique à barres.et j'entre dans quelques problèmes épineux, plusieurs exceptions JMP.
J'ajouterai un élément de liste de souhaits selon lequel JMP autorise un message Change To() pour les elemnets, pas seulement Ajouter un élément et Supprimer un élément.
J'ajouterai au message quand/si je le comprendrai.
Re : Commandes JSL de Graph Builder sur Elements@tom_abramov
Une pensée m'est venue à l'esprit, et il existe un moyen de contourner ce problème... C'est une solution que j'ai utilisée plusieurs fois pour différentes raisons.Ce que je vous suggère de faire, c'est d'écrire votre code, de sorte que lorsque vous devez ajouter les éléments auxquels vous faites référence, vous supprimez simplement le graphique entier et le recréez à sa place.De la façon dont JMP gère l'actualisation, il n'affichera probablement pas la modification lorsque le graphique sera supprimé.Il verra probablement simplement que le graphique a changé.
Le code ci-dessous illustre mon idée.
names default to here(1);
Open( "$SAMPLE_DATA/Big Class.jmp" );
new window("Test", vlb=vlistbox());
vlb<< append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
));
wait(5);
gb << delete;
vlb << append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements(
Position( 1, 2 ),
Bar( X, Y, Legend( 2 ), Label( "Label by Value" ) )
)
));Re : Commandes JSL de Graph Builder sur ElementsMauvais pour moi...
Merci Jim.
Re : Commandes JSL de Graph Builder sur ElementsJe ne pense pas que cela puisse être fait.Ce que vous devez pouvoir faire, c'est transmettre à FrameBox() dans la sortie, un segment, tel qu'un segment de barre ou un segment de ligne.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Graph Builder( Variables( X( :age ), Y( :weight ) ), Elements( Bar( X, Y ) ) );
frame = Report( obj )[FrameBox( 1 )];
seg = (frame << Find Seg( "Bar Seg" ));
seg << Get Width Proportion();
seg << Set Fill Color( "Green" );
Vous pouvez modifier les segments de manière interactive, dans la sélection Personnaliser lorsque vous cliquez avec le bouton droit sur le graphique, et il n'y a pas de segment d'étiquette.
