Ich versuche, eine JSL zu schreiben, um ein bivariates Diagramm zwischen x und y zu zeichnen, nach den Werten in Spalte „b“ zu gruppieren und eine Linie durch jede der Gruppen zu ziehen (aus den eindeutigen Werten in Spalte „b“). Das aus dem manuellen bivariaten Diagramm, das ich erstellt habe, generierte Skript lautet wie folgt, aber ich kann nicht herausfinden, wie ich eine For-Schleife für alle „Fit Where“-Befehle hinzufügen kann, die durch die eindeutigen Werte in Spalte „b“ gehen.
Bivariate(
Y( :Name( "y" ) ),
X( :Name( "x" ) ),
Automatic Recalc( 1 ),
Fit Where( :p</img> == "grpA", Fit Line( {Line Color( {228, 26, 28} )} ) ),
Fit Where(
:b == "grpB",
Fit Line( {Line Color( {55, 126, 184} )} )
),
Fit Where(
:b == "grpC",
Fit Line( {Line Color( {77, 175, 74} )} )
),
Fit Where(
:b == "grpD",
Fit Line( {Line Color( {152, 78, 163} )} )
),
Fit Where(
:b == "grpE",
Fit Line( {Line Color( {255, 127, 0} )} )
),
Fit Where(
:b == "grpF",
Fit Line( {Line Color( {166, 86, 40} )} )
),
Where( :c == "TT" & :e == "EE" ),
SendToReport(
Dispatch( {}, "1", ScaleBox, {Reversed Scale} ),
Dispatch( {}, "2", ScaleBox, {Reversed Scale} ),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Marker Size( 6 ), Row Legend(
e,
Color( 0 ),
Color Theme( "" ),
Marker( 1 ),
Marker Theme( "Standard" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
),
Dispatch( {}, "Linear Fit b==grpA, OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Linear Fit b==grpB", OutlineBox, {Close( 1 )} ),
Dispatch(
{},
"Linear Fit b==grpC",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{},
"Linear Fit b==grpD",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{},
"Linear Fit b==grpE",
OutlineBox,
{Close( 1 )}
),
Dispatch(
{},
"Linear Fit b==grpF",
OutlineBox,
{Close( 1 )}
)
)
);Ich denke, was Sie suchen, ist das Argument groupby().Wenn Sie Farben angeben möchten, ist dies auf Spaltenebene definitiv einfacher @txnelson genannt.
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Group BY(:sex),
Fit line()
);Ich glaube, es wird einfacher sein, die Farben in einer Spalteneigenschaft für die Variable
festzulegen und ein By()-Element zu verwenden.
names default to here(1);
:b << set property("value colors",
{"grp8" = {55, 126, 184} }, "grpC" = {77, 175, 74} etc. }
);
Bivariate(
Y( :x ),
X( :y ),
Fit Line( ),<BR /> by( : B )
);Die bivariate Plattform verfügt über eine eigene Gruppieren-nach-Funktion, die über das Plattformmenü oder JSL verfügbar ist:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << Bivariate(
Y( :weight ),
X( :height )
);
obj
<< Group By( :sex )
<< Fit Line;