<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, Eigenschaften wie zu ändern Farbe/Größe/Transparenz von beiden Markierungen und Linien auf überlagerten Diagrammen mithilfe von Skripten (gebunden an Benutzereingaben wie Kontrollkästchen und Textfelder). Unten ist Code, mit dem ich gespielt habe, um herauszufinden, wie man das Skript manipuliert, aber ich bin mir nicht sicher, ob ich weiß, was ich tue :-). Wenn Sie Antworten auf Fragen in Kommentarzeilen des Codes kennen oder wenn Sie wissen, dass eine Syntaxreferenz für gb-Funktionen existiert, posten Sie bitte ... Danke ...
//Tabelle erstellen
dt = Neue Tabelle ( "grphbldr.jmp" , Zeilen hinzufügen ( 10 ) ,
Neue Spalte ( "X" , Numerisch , Kontinuierlich , Werte einstellen ( 1 :: 10 )) ,
Neue Spalte ( "Y1" , Numerisch , Kontinuierlich , Formel ( : X ^ 2 )) ,
Neue Spalte ( "Y2" , Numerisch , Kontinuierlich , Formel ( 3 *: X ^ 2 - 100 )) ,
) ;
gb = Graph-Generator (
Systemsteuerung anzeigen ( 0 ) ,
//Syntax zum Löschen von Variablen und neuen?
//Was ist Position(1)?
Variablen ( X ( : X ) , Y ( : Y1 ) , Y ( : Y2 , Position ( 1 ) ) ) ,
//Informationen/Syntax über Elemente, Legende?
//Warum wird keine Legende für Y(2) Punkte im Diagramm angezeigt?
Elemente (
Punkte ( X , Y ( 1 ) , Y ( 2 ) , Legende ( 1 ) , Zittern ( 1 ) ) ,
Linie (
X ,
Y ( 1 ) ,
Y ( 2 ) ,
Legende ( 2 ) ,
//Info zur Reihenreihenfolge?
//Zieht Linien durch fehlende Punkte?
Reihenreihenfolge ( 0 ) ,
Zusammenfassende Statistik ( "Bedeuten" )
)
) ,
SendToReport (
// was ist "400"?
Versenden ( {} , "400" , ScaleBox ,
{
//Transparenz von Punkten ändern.
//Legendenmodell(1) für Punkte. Eigenschaften(0) - für Y1,
//und Properties(1) für Y2?
//Wie werden Markierungstyp und -größe für Punkte eingestellt?
Legendenmodell ( 1 , Eigenschaften ( 0 , { Transparenz ( 0,6 )} ) ) ,
Legendenmodell ( 1 , Eigenschaften ( 0 , { Transparenz ( 0,4 )} ) ) ,
//Transparenz und Linienstärke von Linien ändern.
//Legend Model(2) für Linien. Eigenschaften(0) - für Y1,
//und Properties(1) für Y2?
Legendenmodell ( 2 , Eigenschaften ( 0 , { Linienbreite ( 2 ) , Transparenz ( 0,6 )} ) ) ,
Legendenmodell ( 2 , Eigenschaften ( 1 , { Linienbreite ( 5 ) , Transparenz ( 0,4 )} ) )
}
)
)
) ;
Ich möchte nur hinzufügen, dass ich einige umfangreiche Manipulationen an GB-Befehlen vorgenommen habe, aber erst nachdem ich ein komplexes Diagramm ausgearbeitet und mir den Code angesehen habe.Ich wollte meine eigenen Markierungen und Farben festlegen und Linien anzeigen, die Symbole verbinden, aber ich wollte, dass die Legende nur die Symbole zeigt, nicht die Linien.Sobald Sie ein komplexes Beispieldiagramm erstellt haben, können Sie sich den Code ansehen und herausfinden, wie Sie ihn für andere Situationen dynamisch neu erstellen können (dh eine unterschiedliche Anzahl von Dingen, die gezeichnet werden sollen).
Der GB-Code ist logisch, aber am sichersten ist es, ihn mit GB zu erstellen.
Sieht so aus, als hättest du das meiste herausgefunden. Befolgen Sie die Vorschläge von PMRoz für die Beispielsyntax, um Marker und Markergröße in die Legendeneigenschaften zu übernehmen.
//Was ist Position(1)?
Wenn Sie zwei Ys haben, können sie entweder in zwei "Positionen" gehen oder beide in dieselbe Position. Position(1) besagt, dass das 2. Y an der gleichen Position wie das erste Y platziert werden soll.
//Warum wird keine Legende für Y(2) Punkte im Diagramm angezeigt?
Dies kann ein Fehler oder zumindest ein Mangel in einer Heuristik sein. GB versucht, "unnötige" Legendenelemente auszublenden, z. B. wenn die Punkte und Linien dieselbe Farbe haben. Gleiches gilt für Regressionslinien und ihre Konfidenzintervalle.
// was ist "400"?
400 ist eine feste GB-ID-Nummer für die Legende.
Sie können sich den gesamten Send To Report()-Teil als Ergänzung zum GB-Skript vorstellen, bei dem Anzeigeänderungen vorgenommen werden, nachdem das Diagrammmodell erstellt wurde.
Anstatt zu versuchen, die Syntax von Graph Builder zu verstehen, gehe ich einen anderen Weg:
Ich erstelle das Diagramm mit dem Graph Builder und manipuliere es, bis es genau so ist, wie ich es möchte.Dann klicke ich auf das rote Dreieck und kopiere das Skript und füge es in mein JSL-Programm ein.