Graph Builder: Ändern Sie die Breitenlinie des parallelen Diagramms, wenn eine Farbvariable vorhanden istHallo zusammen,
Ich mache ein paralleles Diagramm und benutze eine Variable, um die Linien zu färben. Zum Beispiel verwende ich das folgende Skript mit der Big Class-Tabelle:
obj = Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
Dann möchte ich die Breite der Linie ändern. Ich habe versucht, dies auszuführen:
frame = Report( obj )[FrameBox(1 )];
seg = frame << Find Seg( "Polyline Seg" );
seg << Set Line Width(3);
Es wurden jedoch nur die Linien geändert, die der ersten Ebene meiner Farbvariablen zugeordnet sind (Alter in diesem Beispiel).
Wie kann ich alle Zeilen gleichzeitig ändern? Soll ich beim Erstellen des Diagramms die Versandfunktion verwenden? Ich weiß jedoch nicht wirklich, wie ich damit umgehen soll, da ich die Anzahl der Ebenen der Farbvariablen nicht im Voraus kenne.
Vielen Dank im Voraus für Ihre Hilfe!
GrafikSkriptingBetreff: Graph Builder: Ändern Sie die Breitenlinie des parallelen Diagramms, wenn eine Farbvariable vorhanden istIch bin mir nicht sicher, warum Ihr Code nicht wie für Sie vorgesehen funktioniert. Es funktioniert bei mir (JMP 15 für Mac).
Ein alternativer Ansatz ist die Verwendung von Xpath.
(obj << xpath( "//PolylineSeg" )) << Set Line Width( 3 );
Betreff: Graph Builder: Ändern Sie die Breitenlinie des parallelen Diagramms, wenn eine Farbvariable vorhanden istHallo Ann,
Basierend auf einigen Experimenten, die ich durchgeführt habe, möchte ich zunächst sicherstellen, dass Ihr Problem mit der Legende auf der GB-Handlungslinie selbst liegt. In diesem Fall ist mir aufgefallen, dass beim manuellen Ändern der Linienbreite im Menü Anpassen auch die Legenden nicht korrekt aktualisiert werden. Daher scheint dies ein Fehler zu sein.
Wenn Sie jedoch die Linienbreite in der Legende einzeln manuell ändern, werden sowohl die Kurven als auch die Legende aktualisiert.
Der entsprechende Code (für ein aus dem GB-Skript entferntes Legendenelement) lautet wie folgt:
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (2, {Line Width (3)}, Itemd ID ("14", 1) ) )}));
Um die Legendenelemente (dh das Alter) zu durchlaufen, habe ich mir den folgenden "hässlichen" Code ausgedacht:
Names Default to Here (1);
dt = current data table ();
dts = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
invisible
);
dlist = Column (dts, "age") << get values;
Close (dts, NoSave);
show (dlist);
obj = dt << Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
objr = obj << report;
//frame = objr [FrameBox(1 )]; NO LONGER NEEDED
//seg = frame << Find Seg( "Polyline Seg" ); NO LONGER NEEDED
//seg << Set Line Width(6); NO LONGER NEEDED
For (i = 0, i < N Items (dlist), i++,
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (i, {Line Width (12)}, Itemd ID (dlist [i], 1) ) )}))
);
Betreff: Graph Builder: Ändern Sie die Breitenlinie des parallelen Diagramms, wenn eine Farbvariable vorhanden istVielen Dank @Frau und @ Thierry_S für deine Antworten!
Mein Ziel ist es in der Tat, die Linienbreite des Diagramms und nicht nur der Legende zu ändern.
Ich wähle die Lösung von @Frau da es etwas kürzer ist aber beide wie ein Zauber wirken!:)