自动缩放匹配 X 轴和 Y 轴已解决:回复:自动绘制关联列 - JMP 用户社区
作为上述讨论的延续,我想自动缩放一些图,使其关于 X 轴和 Y 轴上的零值对称。
我想要这个

自动输出为这样。

让我到这里的代码包含在上面的链接中
再见
扳手头
自动化和脚本回复:自动缩放匹配 X 轴和 Y 轴一种选择是使用一些矩阵来检查“有效”行,仅从这些行中获取值,然后像以前一样计算最大值。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
m1 = Column(dt, "height") << get values;
m2 = Column(dt, "weight") << get values;
valid_rows = Loc(V Sum(Is Missing(m1 || m2)`), 0);
val = Max(Abs(dt[valid_rows, "weight"] |/ dt[valid_rows, "height"]));回复:自动缩放匹配 X 轴和 Y 轴谢谢,你说的很对,我觉得我没有正确表达问题。计算 X 的最大值时,会忽略 X 中的缺失值。同一行上的 Y 值没有缺失,因此不会被忽略。我应该澄清一下,我正在遍历数据表中的列并自动绘制连接的指标。
如果选择了该值,此脚本可能会选择一个电压阈值并将其与相应的电流值进行绘制。当最后重新调整比例时,例如,X 中的缺失值将导致图表上没有数据点,但是,合作伙伴 Y 值仍然可以设置图表的比例。
To ensure the plot contains the 100 value on both axed, I did modify the matrix to include 110 with |/110;
再见
扳手头
dt = Current Data Table();
dt << Clear Column Selection();
colList = dt << get column names( string );
check_list = {"VTX", "VTN", "VTP", "VTF", "IDS", "IBB", "ILK", "CMI"};
New Window( "Select Variables",
<<TYPE></TYPE>回复:自动缩放匹配 X 轴和 Y 轴由于您知道正在使用的列,因此可以使用 Col Min + Col Max 来获取最小值和最大值(它们应该尊重缺失值代码)。然后结合使用您的值、Abs() 函数和 Max() 函数来获取用于 x 轴和 y 轴的值
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
show(Col Max(Column(dt, "height")));
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
show(Col Max(Column(dt, "height")));
但我还认为,如果这些点被缺失值代码忽略,那么双变量根本不应该绘制这些点
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val1 = Max(Max(Abs(xs)), Max(Abs(ys)));
biv << close window;
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val2 = Max(Max(Abs(xs)), Max(Abs(ys)));
show(val1, val2);回复:自动缩放匹配 X 轴和 Y 轴我有很多错误代码是数字,以保留列的数据类型。我需要在分析中对这些代码视而不见。但是,如果 X 或 Y 标有缺失值代码,而合作伙伴没有,则可以通过未实际绘制在图表上的数据来设置比例

非常感谢您的帮助。
再见
扳手头
回复:自动缩放匹配 X 轴和 Y 轴在这种情况下“标记为丢失”是什么意思?
如果您希望保留其他值,我认为即使矩阵有缺失值,它仍然有效。

回复:自动缩放匹配 X 轴和 Y 轴我意识到了一件小事。在某些情况下,ys 或 xs 矩阵之一有缺失值,因为它被赋予了缺失值代码。合作伙伴矩阵值可能没有缺失,可以包含在内以设置比例。如果行被标记为 xs 缺失,是否有办法从 ys 中消除值,而当 ys 是缺失值时也会消除 xs。
再见
扳手头
回复:自动缩放匹配 X 轴和 Y 轴太棒了!效果非常好。
回复:自动缩放匹配 X 轴和 Y 轴计算最大值(绝对值),取其负数并设置值可能是一种选择。您还可以使用 Col Max() / Col Min() 或 Summarize 从数据表中计算值
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val = Max(Max(Abs(xs)), Max(Abs(ys)));
xaxis = Report(biv)[AxisBox(1)];
yaxis = Report(biv)[AxisBox(2)];
xaxis << Min(-1*val) << Max(val);
yaxis << Min(-1*val) << Max(val);