Wie stelle ich den Linienstil in JSL ein?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich möchte den Linienstil für ein Liniendiagramm basierend auf einer Funktion der Spalte festlegen, die ich zum Überlagern verwende. Wenn ich beispielsweise Daten habe, bei denen die Spalte, die ich zum Überlagern verwende, die Werte „Revenue_Jan“, „Profit_Jan“, „Revenue_Feb“, „Profit_Feb“ hat, möchte ich, dass alle „Revenue“-Diagramme gestrichelt sind und alle „Profit“-Diagramme gestrichelt sein.
Kann ich den Linienstil auf diese Weise mit JSL festlegen?
Betreff: Wie stelle ich den Linienstil in JSL ein?Mir ist auch aufgefallen, dass die Anzahl keine Rolle spielt, zumindest nicht im aktuellen Beispiel. Ich bin mir nicht sicher, worauf sich Legend Model bezieht. Graph Builder unterscheidet sich stark von anderen Plattformen, wenn es um Skripte geht.
Betreff: Wie stelle ich den Linienstil in JSL ein?Fantastisch, danke!
Eine Sache verstehe ich immer noch nicht - für mich funktioniert Ihr Skript nur, wenn ich "{Legend Model(4..." in "{Legend Model{1..." ändere. Wissen Sie, worauf sich dieses „Legendenmodell“ bezieht? Ich kann nirgendwo eine Dokumentation darüber finden.
Betreff: Wie stelle ich den Linienstil in JSL ein?Hier ist eine Erweiterung von Jims Beispiel, das den Linienstil bedingt auf die Overlay-Ebenen anwendet, indem eine Liste von Ebenen durchlaufen wird.
Im Graph Builder scheint jede Overlay-Ebene durch eine Nummer beginnend bei 0 adressiert zu werden. Die Reihenfolge weicht vom Standard ab, wenn die Overlay-Spalte eine Wertereihenfolge-Eigenschaft hat. Daher muss die Reihenfolge der Ebenen beim Erstellen der Liste berücksichtigt werden.
Namen standardmäßig hierher ( 1 ) ;
// Beispieldatentabelle
dt = Offen ( "$SAMPLE_DATA/Große Klasse.jmp" ) ;
dt << Neue Spalte ( "Gruppe" ,
Charakter ,
Formel (
Wenn (
: Sex == "F" & : Höhe < Spalte Mittel ( : Höhe , : Sex ) , "F kurz" ,
: Sex == "F" & : Höhe >= Spalte Mittel ( : Höhe , : Sex ) , "F groß" ,
: Sex == "M" & : Höhe < Spalte Mittel ( : Höhe , : Sex ) , "M kurz" ,
"M groß"
)
)
) ;
// Graph Builder mit Overlay
OverlayCol = Spalte ( dt , "Gruppe" ) ;
gb = Graph-Generator (
Größe ( 528 , 447 ) ,
Systemsteuerung anzeigen ( 0 ) ,
Variablen ( X ( : Alter ) , Y ( Als Spalte ( YCol )) , überlagern ( Gruppe )) ,
Elemente ( Linie ( X , Y )) ,
) ;
// Linienstil auf Overlay-Werte anwenden, die Kriterien erfüllen
Stil = "gepunktet" ;
Kriterien = "M " ;
Zusammenfassen ( G = von ( OverlayCol )) ; // Liste der Overlay-Ebenen (alphabetische Reihenfolge)
// Unterhalb der Zeile auskommentieren, wenn die Eigenschaft "Wertreihenfolge" für die Spalte "Overlay" festgelegt ist
// g=OverlayCol<
Für ( ich = 1 , ich <= N Artikel ( G ) , ich ++,
Wenn ( Enthält ( G [ ich ] , Kriterien ) ,
gb << SendToReport (
Versenden ({} , "400" , ScaleBox ,
{ Legendenmodell ( 4 , Eigenschaften ( ich - 1 , { Linienstil ( Stil )}))}
)
)
)
) ;
Betreff: Wie stelle ich den Linienstil in JSL ein?
Hallo Jim, danke für die Antwort. Mein Problem ist, dass Sie in Ihrem Beispiel dem Skript explizit mitteilen, in welchem Diagramm der Linienstil geändert werden soll Eigenschaften ( 0 , { Linienstil ( "gepunktet" )} Befehl. In dem Fall, an dem ich interessiert bin, weiß ich nicht im Voraus, wie viele Diagramme es gibt - es könnten 3 sein, es könnten 30 sein, und ich möchte den Linienstil jedes Diagramms basierend auf dem Überlagerungswert ändern.
Gibt es einen allgemeineren Weg, diesen Befehl auszuführen, der eine Gruppe auswählt, anstatt einen bestimmten Graphen zum Ändern auszuwählen? Oder könnte ich zum Beispiel irgendwie den Index der Diagramme finden, an denen ich interessiert bin, und eine Schleife ausführen, die den Linienstil jedes Diagramms ändert?
Wenn ich beispielsweise drei Diagramme habe, „Revenue_Jan“, „Profit_Jan“ und „Revenue_Feb“ (und ich nicht im Voraus weiß, wie viele „Revenue“-Diagramme es geben werden), gibt es eine gute Möglichkeit, dies herauszufinden dass Graph 0 und Graph 2 beide mit "Revenue" beginnen und eine Schleife durchlaufen, die den Stil von beiden ändert? Oder gibt es eine andere Möglichkeit, diese Art von Funktion auszuführen?
Betreff: Wie stelle ich den Linienstil in JSL ein?Der Linienstil kann einfach in JSL eingestellt werden.Unten ist ein einfaches Skript, das Ihnen eine Möglichkeit zeigt, den Linienstil zu ändern.
Namen standardmäßig hierher ( 1 ) ;
dt = Offen ( "$SAMPLE_DATA/Große Klasse.jmp" ) ;
YCol = "Höhe" ;
// Der Wert von lstyle kann basierend auf festgelegt werden
// die Spalte, die für die Y-Spalte verwendet wird
// (dh If(YCol == "Profit", lstyle="Dotted", lstyle="Solid"))
Stil = "gepunktet" ;
Graph-Generator (
Größe ( 528 , 447 ) ,
Systemsteuerung anzeigen ( 0 ) ,
Variablen ( X ( : Alter ) , Y ( Als Spalte ( YCol ) ) ) ,
Elemente ( Linie ( X , Y , Legende ( 4 ) ) ) ,
SendToReport (
Versenden ( {} , "400" , ScaleBox ,
{ Legendenmodell ( 4 , Eigenschaften ( 0 , { Linienstil ( Stil )} ) )} )
)
) ;
