Referenzieren Sie ein Maßstabsfeld mit einer Variablen
Hallo,
Ich versuche, mehrere Diagramme mit einer for-Schleife zu erstellen und den Spaltentitel der Y-Achse zuzuweisen.
Nach der grafischen Darstellung möchte ich mit einem Dispatch-Befehl drei Referenzlinien zur Y-Achse hinzufügen, kann aber nicht herausfinden, wie ich das Feld der Y-Achse dynamisch referenzieren kann, siehe *** unten:
For( i = 12, i <= 18, i++,
Col_name = Column( i ) << Get Name;
temp = Expr( Col_name );
//Graph Line Data
Split_dt << Graph Builder(
Size( 536, 500 ),
Variables( X( :Year ), X( :Month, Position( 1 ) ), X( :Day, Position( 1 ) ), Y( Column( i ) ) ),
Elements(
Box Plot( X( 1 ), X( 2 ), Y, Legend( 9 ), Jitter( 1 ), Outliers( 1 ), Box Style( "Outlier" ) )
),
SendToReport(
Dispatch(
{},
,
ScaleBox,
{Add Ref Line( 9, Solid, "Black", "LSL" ), Add Ref Line( 21, Solid, "Black", "USL" ),
Add Ref Line( 16, Dashed, "Medium Dark Green", "Target" )}
)
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Line " || Char( Line_Number ) || " " || Col_name )}
)
)
);
);
Dieser Code gibt den Fehler „Cannot find ScaleBox[ „Col_name“ ] at {}“ zurück, als ob JSL Col_name als String auswerten würde.
Irgendwelche Ideen, wie Col_name auf seinen Wert ausgewertet werden kann oder wie die Ref-Zeilen anders hinzugefügt werden können?
Danke!
Betreff: Referenzieren Sie ein Maßstabsfeld mit einer VariablenHier ist eine Möglichkeit, Referenzlinien über JSL zu einer Achse hinzuzufügen:
Names Default To Here( 1 );
// Make some data and make a graph
dt = New Table( "Test", New Column( "Y", Numeric, Continuous, Formula( Random Normal() ) ), AddRows( 20 ) );
gb = dt << Graph Builder(
Size( 528, 420 ),
Show Control Panel( 0 ),
Variables( Y( :Y ) ),
Elements( Points( Y, Legend( 16 ) ) ),
);
// Template expression to add a reference line
addRefLine = Expr(
gb << SendToReport( Dispatch( {}, "Y", ScaleBox, {Add Ref Line( TBD, "Solid", "Black", "", 1 )} ) )
);
// Loop . . .
For( i = -3, i <= 3, i++,
Wait( 1 );
Eval( Substitute( Name Expr( addRefLine ), Expr( TBD ), i ) );
);
Betreff: Referenzieren Sie ein Maßstabsfeld mit einer Variablen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe einen Workaround gefunden, indem ich Spezifikationsgrenzen für die Spalten festgelegt habe, die ich grafisch darstellen möchte, und „Anzeigen“ als Referenzlinien festgelegt habe:

Ich kenne immer noch keine Möglichkeit, die Dispatch-Funktion dazu zu bringen, die Variable auszuwerten.Es nimmt es einfach als String.
Betreff: Referenzieren Sie ein Maßstabsfeld mit einer VariablenIch habe vergessen, den *** hinzuzufügen, siehe unten:
For( i = 12, i <= 18, i++,
Col_name = Column( i ) << Get Name;
temp = Expr( Col_name );
//Graph Line Data
Split_dt << Graph Builder(
Size( 536, 500 ),
Variables( X( :Year ), X( :Month, Position( 1 ) ), X( :Day, Position( 1 ) ), Y( Column( i ) ) ),
Elements(
Box Plot( X( 1 ), X( 2 ), And, Legend( 9 ), Jitter( 1 ), Outliers( 1 ), Box Style( "Outlier" ) )
),
SendToReport(
Dispatch(
{},
ScaleBox,
{Add Ref Line( 9, Solid, "Black", "LSL" ), Add Ref Line( 21, Solid, "Black", "USL" ),
Add Ref Line( 16, Dashed, "Medium Dark Green", "Target" )}
)
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Line " || Char( Line_Number ) || " " || Col_name )}
)
)
);
);