Graph Builder JSL-Befehle für ElementeHallo,
Ich kann die Syntax zum Bearbeiten (Element hinzufügen/Element entfernen/Beschriftungen zu Element hinzufügen) von Graph Builder-Elementen nicht finden nach Die Grafik ist fertig.
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( "Label by Value" );// ?? // Wie lautet die Syntax dafür?
//gb << Add Element(Position( 1, 3 ), Line( X, Y, Legend( 3 ) ));// ?? //Y muss Gewicht sein
Danke
MassenanpassungBetreff: Graph Builder JSL-Befehle für ElementeSeit 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 chartBetreff: Graph Builder JSL-Befehle für ElementeVielen Dank euch beiden.
„GraphBuilderBox“ ist das Schlüsselwort...
Betreff: Graph Builder JSL-Befehle für Elemente@tom_abramov ,
Es lag an mir, einem Benutzersyntaxfehler.Du gehst her.
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
Betreff: Graph Builder JSL-Befehle für Elemente@tom_abramov ,
Ich habe einen anderen langen Weg eingeschlagen, wie Jim, @txnelson .Dann musste ich lachen, denn JMP hat mit der Nachricht eine einfache Lösung
An GraphBuilderBox() gesendetes Update Element()
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);
*/
Ich stoße jedoch auf ein Problem, wenn ich die Variable :weight hinzufüge, was einfach zu bewerkstelligen ist, aber standardmäßig erstellt GraphBuilder ein weiteres Balkendiagrammelement.und ich stoße auf einige verrückte Probleme, mehrere JMP-Ausnahmen.
Ich werde einen Wunschlisteneintrag hinzufügen, dass JMP eine Change To()-Nachricht für Elemnets zulässt, nicht nur „Element hinzufügen“ und „Element entfernen“.
Ich werde den Beitrag ergänzen, wenn ich es herausgefunden habe.
Betreff: Graph Builder JSL-Befehle für Elemente@tom_abramov
Ein Gedanke schoss mir gerade durch den Kopf, und es gibt einen Weg, dies zu umgehen … Dies ist eine Lösung, die ich aus verschiedenen Gründen schon oft verwendet habe.Ich empfehle Ihnen, Ihren Code so zu schreiben, dass Sie, wenn Sie die Elemente hinzufügen müssen, auf die Sie verweisen, einfach das gesamte Diagramm löschen und es an seiner Stelle neu erstellen.Aufgrund der Art und Weise, wie JMP mit der Aktualisierung umgeht, wird die Änderung wahrscheinlich nicht angezeigt, wenn das Diagramm gelöscht wird.Es wird wahrscheinlich nur angezeigt, dass sich die Grafik geändert hat.
Der folgende Code veranschaulicht meine Idee.
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" ) )
)
));Betreff: Graph Builder JSL-Befehle für ElementeSchlecht für mich...
Danke, Jim.
Betreff: Graph Builder JSL-Befehle für ElementeIch glaube nicht, dass das machbar ist.Sie müssten dazu in der Lage sein, an FrameBox() in der Ausgabe ein Segment zu übergeben, z. B. ein Balkensegment oder ein Liniensegment.
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" );
Sie können die Segmente interaktiv ändern, indem Sie in der Auswahl „Anpassen“ mit der rechten Maustaste auf das Diagramm klicken, und es gibt kein Beschriftungssegment.
