在图表上绘制线条和箭头的问题我正在尝试一些实验,想弄清楚如何在 JSL 中在图表上绘制线条和箭头。脚本指南中没有太多帮助我的内容,而且我在社区中也没有看到任何之前发布的内容。我已将我的 JSL 脚本和数据表上传到下方。
在数据表中,我计算了间隔 5 度的单位圆的坐标。我用图形生成器绘制了这些坐标……

最初,我想做的是从原点到每个点编写一个箭头。这是我正在使用的脚本。运行它时没有出现任何错误,但它始终无法绘制箭头。我尝试过将 FOR 循环放在 Graph Builder 块内(如图所示),也尝试过将其放在块外。但似乎都无法正常工作。
Names Default To Here (1);
dt = "Circle Arrow Data";
Graph Builder(
Size( 540, 540 ),
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :x coord ), Y( :y coord ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
For( i=0, i<360, i+=5,
Arrow( {0,:x coord[i]}, {0, :y coord[i]})
)
);
最终,我的目标是只在选中一行或多行时才显示箭头,但显然我需要先让它正常工作。这实际上是在图表上显示风向,但我还在一点点学习如何在图表上绘图。
在此先感谢提供的任何指导。
自动化和脚本回复:在图表上绘制线条和箭头的问题时机非常好:)
JMP19 中的新功能:
矢量场图表能帮助解释上届超级碗的表现吗?

New Column( "x_0", Formula( 0 ));
New Column( "y_0", Formula( 0 ));
Graph Builder(
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) ),
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
Ordering( "Within Row" ),
Connection( "Arrow" )
)
)
);
回复:在图表上绘制线条和箭头的问题嘿@hogi,谢谢你的脚本。它运行得很好。
我正在尝试去理解它...所以有几个问题。
1)Position参数起什么作用?
2)X 和 Y 参数中的 1 和 2 从何而来?
3)排序(“行内”)起什么作用?
脚本帮助和脚本索引中关于这些功能的文档似乎非常不完整。
再次感谢。
回复:在图表上绘制线条和箭头的问题我同意,脚本索引不如 Mathematica 或 Matlab 等其他程序中的索引,也不如 Python 和 C++ 的大量在线文档。有一些活动可以改善这种情况: 综合脚本索引
另一方面,你可以通过实践学到很多东西。只需打开“图形生成器”,使用拖放功能创建图形即可。这只需要几秒钟——优化绘图也需要几秒钟。然后“将脚本保存到数据表”,并将你所做的与代码中的结果进行比较。
- 行顺序是 JMP19 中的一项新功能。当 X 和 Y 使用多组坐标时,可以使用此功能。
这是此案例的新默认选项
[注意:当我激活该选项时,图表不会改变]
- let's drag the coordinates into the plot, first x_0 and y_0
Variables( X( :x_0 ), Y( :y_0 ) ),
- then x_coord / y_coord
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) )
- now, we just have to activate the line plot. By default, it uses all available coordinated:
X(1) is x_0
X(2) is x_坐标
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
)
)
we can also deactivate variables via:
那么代码将减少为:
Elements(
Line( X( 1 ), Y( 1 ),
用线和箭头连接多个坐标的图:JMP19 的一大改进。
用线条和箭头连接多个坐标的绘图。JMP19 的重大改进!
试想一下,你想在同一个图中绘制三组坐标(点),而不是箭头。然后,你必须在图表中添加三个点图,并禁用“其他”坐标三次。虽然可以,但很乱!

想象一下如果你想绘制十组坐标!
合乎逻辑的下一步是将新的“行内”功能复制到点图。
多个 x 和 y 数据集绘制为“对”,无需堆叠列
我真的希望这个功能能够尽快实现!
回复:在图表上绘制线条和箭头的问题那么,X 和 Y 函数中的 1 和 2 个参数只是它们在变量函数中列出的顺序吗?我的理解正确吗?
那么 Position(1) 在 Variables 函数中起什么作用呢?这似乎会使 :x 坐标和 y: 坐标变为 1,而不是 x_0 y_0。
抱歉。这让我有点困惑。
回复:在图表上绘制线条和箭头的问题啊……所以我把 position(1) 去掉,然后运行脚本。结果如下……

因此,添加变量的方式将导致四个独立的图表。“位置”命令用于选择显示哪个图表。
我认为那是对的...
我会再多试试这个。以后可以做个很棒的教程视频。
感谢您对此的所有帮助
回复:在图表上绘制线条和箭头的问题: )
正如承诺的那样,通过“实践”从脚本中学习真的很容易!
除此之外,通过这种方式,学习效果很有可能会更好。:)
回复:在图表上绘制线条和箭头的问题是的。我同意。但有时还是很难理解到底发生了什么。
例如,我把 Position(1) 替换成了 Position(2),以为这样会显示图表的另一个象限。但是……它什么也没发生。所以 Position(1) 中的 1 很可能是一个布尔值。
我在网上、脚本索引或在线帮助里都找不到任何相关信息。也许我找错地方了。
无论如何,再次感谢。
回复:在图表上绘制线条和箭头的问题而不是尝试编写代码并检查其如何工作......
尝试相反的方法:
在 Graph Builder 中创建复杂图表后,检查代码并得出结论:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :name ),
Y( :weight ),
Y( :height, Position( 2 ) ),
Y( :age ),
Overlay( :sex )
),
Elements( Position( 1, 1 ), Points( X, Y ) ),
Elements(
Position( 1, 2 ),
Points( X, Y( 1 ), Y( 2 ), Legend( 1 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Legend( 2 ) )
),
Elements( Position( 1, 3 ), Points( X, Y ) )
);
如果只有 2 个项目,则添加第二个条目和将第二个条目添加为第二个条目之间没有区别。
Position(2) 适用于三个及以上项目的情况。默认情况下,第三个项目会被添加为第三个。如果您想做其他事情,可以将其添加到 Position(2)。