各位:
我想创建一个平行图
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)
));