JSL每次创建一条用于更改组的主干线
你好,
我有这个脚本:
dt = Current Data Table();
listX = {"1","2"};
listY = {"test1", "test2", "test3"};
fybx = dt << FitYByX(
Y( Eval( listY ) ),
X( Eval( listX ) ),
Fit Where( :Group == "BL", Fit Spline( 0.1, Standardized, {Line Color( {213, 72, 87} )} ) ),
try(Fit Where( :Group == "Value0", Fit Spline( 0.1, Standardized, {Line Color( {57, 177, 67} )} ) )),
try(Fit Where( :Group == "Value1", Fit Spline( 0.1, Standardized, {Line Color( {64, 111, 223} )} ) )),
try(Fit Where( :Group == "Value2", Fit Spline( 0.1, Standardized, {Line Color( {207, 121, 38} )} ) )),);它基于一个列表创建x by y图,我现在尝试添加一条脊线,但是我有2个问题:
1.脊线应基于“组”列创建,并且可能具有不同的值(例如“ Value1”可能是“ Value4”或“ Value0”可能是“ Value34”),所以我需要找到一种创建方法如果可能的话,并附上清单
2.它会创建1条书脊线,而不是我想要的4条
我的桌子
| 团体 | 测试1 | 测试2 | 测试3 | 1个 | 1个 |
| BL | 1个 | 1个 | 1个 | 1个 | 1个 |
| BL | 2个 | 2个 | 2个 | 2个 | 65岁 |
| BL | 23 | 3 | 6 | 1个 | 1个 |
| POR | 2个 | 2个 | 2个 | 2个 | 2个 |
| 值1 | 1个 | 1个 | 1个 | 3 | 4 |
| POR | 5 | 7 | 2个 | 2个 | 2个 |
| 值1 | 7 | 5 | 1个 | 7 | 3 |
| 值2 | 2个 | 2个 | 2个 | 2个 | 2个 |
| 值0 | 8 | 1个 | 1个 | 1个 | 6 |
如果我用手做的话是这样的:

然后按“组”进行选择(我认为我需要以某种方式将其添加到脚本中)
然后单击“弹性”->“拟合样条曲线”->标记“标准化x”,然后单击“确定”
最后我要添加的是行图例

脚本编写回复:JSL每次创建一条用于更改组的主干线你好,
我认为您将需要对此进行表情处理。 您将从一个表达式开始,然后将内容插入其中……特别是,您将把拟合样条曲线细节添加到由y表示的x表达式中。
表达式处理具有陡峭的学习曲线,但功能非常强大。
看看这能否使您走上想要的道路。 请注意,Insert Into()和Substitute()的组合将替换原始表达式中_XX_的各个组级别。
干杯,
布雷迪
names default to here(1);
dt = current data table();
listX = {"1","2"};
listY = {"test1", "test2", "test3"};
bivExpr = expr(
Bivariate(
Y( evallist(listY) ),
X( evallist(listx) ),
)
);
groupList = (associative array(dt:group << get values)) << get keys;
for (i = 1, i<=nitems(groupList), i++,
insertinto(bivExpr, substitute(expr(Fit Where( :Group == _XX_, Fit Spline( 0.1, {Line Color( {212, 73, 88} )} ))), expr(_XX_), groupList[i] ))
);
show(nameexpr(bivExpr));
bivExpr;回复:JSL 为每次更改组创建一条脊线非常感谢!这有效!
如果有人想要脊柱线的不同颜色
ColorList = {};
AList = {207, 121, 38};
BList = {64, 111, 223};
CList = {57, 177, 67};
DList = {213, 72, 87};
InsertInto(ColorList, EvalList(List(AList)));
InsertInto(ColorList, EvalList(List(BList)));
InsertInto(ColorList, EvalList(List(CList)));
InsertInto(ColorList, EvalList(List(DList)));
for (i = 1, i<=nitems(groupList), i++,
insertinto(bivExpr, substitute(expr(Fit Where( :Group == _XX_, Fit Spline( 0.1, {Line Color( _YY_ )} ))), expr(_XX_), groupList[i],expr(_YY_), ColorList[i] ))
);