各位:
我想創建一個平行圖
X 軸是表中列的一部分
如何使用jsl創建
我也嘗試添加變數()但無法工作
謝謝
<< 新增變數應該可以,但某些情況可能會更複雜
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:weight), X(:height, Position(1))),
Elements(Parallel(X(1), X(2), Legend(9)))
);
wait(1); // for demo purposes
gb << Add Variable({:age, Role("X"), Position(1)});
謝謝,
還有其他問題,
現在我可以使用「新增變數」將 X 變數新增到圖形產生器中,
但無法透過使用「新增元素」來變更為新增 X 變數(自動)的平行圖
請參閱附件
謝謝
Names Default To Here(1);
dt=Current Data Table();
colnames=dt<< get column names( "character" );
remove from(colnames,nitems(colnames));
remove from(colnames,1);
variables_expr = Expr(Variables(X(:X__1)));
gb = dt << Graph Builder(
Size( 1854, 917 ),
Show control Panel(0),
Variables(X(:X__1)),
Color( :color ),
Size( :Amt )
);
gb << inval;
For Each({x_col, idx}, colnames,
Eval(EvalExpr(
gb << Add Variable({Expr(Name Expr(As Column(dt, x_col))), Role("X"),position(1)})
));
);
<FONT color="#0000FF">// question</FONT>
<FONT color="#0000FF">gb << Add Element( 1, 1, {Type( "Parallel" ),Legend( 4 ),Combine Sets( 1 )} );</FONT>
gb << Update window;
如果你手工建立平行情節並檢查腳本
Graph Builder(
Size(490, 448),
Show Control Panel(0),
Variables(
X(:X__1),
X(:X__2, Position(1)),
X(:X__3, Position(1)),
X(:X__4, Position(1)),
X(:X__5, Position(1))
),
Elements(Parallel(X(1), X(2), X(3), X(4), X(5), Legend(18)))
)
然後將其與您的腳本進行比較(構建它然後從紅色三角形選單中獲取腳本)
Graph Builder(
Size(1854, 917),
Show Control Panel(0),
Variables(
X(:X__1),
X(:X__2, Position(1)),
X(:X__3, Position(1)),
X(:X__4, Position(1)),
X(:X__5, Position(1))
),
Elements(
Points(X(1), X(2), X(3), X(4), X(5), Legend(5)),
Parallel(Legend(4), Combine Sets(1))
)
)
有幾個很大的區別:你仍然有剩餘的點,只是你還沒有在腳本中定義 X()。
如果這是您想要做的,我建議建立圖形建構器表達式,而不是使用<<添加變數和<<添加元素,因為這樣更容易
Names Default To Here(1);
dt = Current Data Table();
colnames = dt << get column names("character");
Remove From(colnames, N Items(colnames));
Remove From(colnames, 1);
variables_expr = Expr(Variables(X(:X__1)));
parallel_expr = Expr(Parallel(X(1)));
For Each({colname, idx}, colnames,
xpart = EvalExpr(X(Expr(NameExpr(AsColumn(dt, colname))), Position(1)));
Insert Into(variables_expr, Name Expr(xpart));
Eval(EvalExpr(
Insert Into(parallel_expr, Name Expr(X(Expr(idx + 1))));
));
);
Insert Into(parallel_expr, Name Expr(Legend(18)));
elements_expr = Expr(Elements());
InsertInto(elements_expr, NameExpr(parallel_expr));
gb = Eval(Substitute(
Expr(dt << Graph Builder(
Size(1854, 917),
Show control Panel(0),
_variables_,
_elements_,
Color(:color),
Size(:Amt)
)),
Expr(_variables_), Name Expr(variables_expr),
Expr(_elements_), Name Expr(elements_expr)
));