从 JSL 脚本创建时线条变得更平滑。有人能帮我找出我在这里做错了什么吗?
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(Y))),
Elements(Line(X, Y, Legend(3), Connection("Curve")), Points(X, Y, Legend(4)))
)
我的线变得平滑了,我希望它能用曲线连接所有点。我从 JMP 控制台创建了图表,它运行良好,我甚至从会话脚本中复制了 JSL,但事实证明,每当我通过 JSL 运行它时,它都会给我一个平滑的图表。
我还有一个问题 - 平滑器绘制在连续数字列上。虽然我可能将其更改为名义值可能会产生一些影响,但它根本没有创建(没有线也没有平滑器)。线条在名义类型的数字列上不起作用吗?
自动化和脚本基础数据分析与建模数据探索与可视化回复:通过 JSL 脚本创建时线条变得更平滑。您使用的是曲线连接而不是直线,这样可以实现平滑效果。此外,如果 X 轴上的相同值有很多,则可能无法连接所有点,除非您启用“行顺序”。
无行序

按行顺序排列(我首先按重量对数据进行排序)

回复:通过 JSL 脚本创建时线条变得更平滑。
这是我使用代码实现的 - 。


但是当我手动添加一行时

接下来-我将连接改为曲线



我实现了我的愿望。一条曲线触及我的所有点。
那么我如何通过我的代码实现这一点?
回复:通过 JSL 脚本创建时线条变得更平滑。平滑器(带点)是某些列选择的默认设置,这可能是 JMP 将其用于您的图表的原因。如果您从平滑器版本获取 JMP 创建的脚本,它看起来会是什么样子?
对我来说这似乎还可以。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(7),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 89, 60, 50, 40, 20, 10]))
);
gb = dt << Graph Builder(
Size(528, 454),
Show Control Panel(0),
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

回复:通过 JSL 脚本创建时线条变得更平滑。这对我不起作用。
我又试了一次。
我没有手动创建平滑器。我创建了线并向其添加点,然后将其更改为曲线。复制了脚本(与描述中的脚本相同)。但相同的脚本创建的是平滑器而不是线。
问:运行脚本时,控制面板左侧的点和线是什么?或点和平滑器?对于我来说,运行线脚本时,我会看到点和平滑器。
您能否尝试以曲折的形式在代码中添加更多点,然后运行脚本?
回复:通过 JSL 脚本创建时线条变得更平滑。您运行的是哪个 JMP 版本?我运行的是 18.1.2。您尝试运行我的脚本了吗?您能提供您的数据表吗?
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([100, 80, 90, 60, 70, 40, 30, 35, 20, 10]))
);
gb = dt << Graph Builder(
Variables(X(:Column 1), Y(:Column 2)),
Elements(Points(X, Y, Legend(3)), Line(X, Y, Legend(6), Connection("Curve")))
);

回复:通过 JSL 脚本创建时线条变得更平滑。我的 JMP 版本是

我已重命名了这些列,并且还删除了除 X 和 Y 之外的其他列。检查这是否适合您。
回复:通过 JSL 脚本创建时线条变得更平滑。看起来还好吗?

Names Default To Here(1);
dt = Open("$DOWNLOADS/data_jmp.jmp");
gb = dt << Graph Builder(
Variables(X(:X), Y(:Y)),
Elements(Line(X, Y, Legend(5), Connection("Curve")), Points(X, Y, Legend(6)))
);回复:通过 JSL 脚本创建时线条变得更平滑。是的,对于我个人来说,同样的方法有效,为什么它不能从循环中工作:(。哪里出了问题。你能检查一下这个脚本吗?
createDashboard = Function({dtMaxF, dtMaxR, normMeanColsF, normMeanColsR, direction},
New Window(direction || " Dashboard",
Tab Box(
"Maximum Values",
V List Box(
For(i = 1, i <= N Items(normalizedColumns), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normalizedColumns[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
),
"Normalized Average Values",
V List Box(
For(i = 1, i <= N Items(normMeanColsF), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsF[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
),
For(i = 1, i <= N Items(normMeanColsR), i++,
Graph Builder(
Size(984, 563),
Show Control Panel(1),
Variables(X(:X), Y(As Column(normMeanColsR[i]))),
Elements(
Line(X, Y, Legend(5), Connection("Curve")),
Points(X, Y, Legend(6))
)
)
)
)
)
)
);
createDashboard(
dtMaxForward, dtMaxReverse, normalizedMeanColumns, normalizedMeanColumns, "Analysis"
);回复:通过 JSL 脚本创建时线条变得更平滑。函数中 dtMaxF、dtMaxR 有什么用?函数中的 normalizedColumns 来自哪里?
回复:通过 JSL 脚本创建时线条变得更平滑。忽略dtMaxF、dtMaxR(我将从代码中删除)。我附上了完整的脚本供您分析
回复:通过 JSL 脚本创建时线条变得更平滑。从很小的事情开始。如果您的表格创建工作正常,您可以从编写单个图表开始。然后扩展到可能来自不同表格的几个不同的图表。绘图时缺少表格引用,您的公式可能无法按预期运行( 使用 Eval Insert、Eval Expr、Parse 和 Substitute 将一个表达式插入另一个表达式)。
回复:通过 JSL 脚本创建时线条变得更平滑。好的,让我试试。嗯,到目前为止,所有公式都有效,但让我再检查一下