我现在有一个问题:有一个JMP表,然后选择一行后,需要自动绘制直方图。 也就是说,不同的行会出现不同的直方图,当检测到数据异常时,改变行的值后,图表应该自动更新。
但现在我已经搜索过,只有 dt<
更改也不适用于 JMP 表。
例如:设置行更改函数()用于tablebox。
谢谢
我很难理解您的数据是如何排列的,以及如何从单行数据生成直方图。
您能否提供数据表的示例或更具体的描述,以及用于生成直方图的方法?
根据行选择的更改触发的典型方法是使用
创建行状态处理程序
行选择的任何更改都将运行放置在行状态处理程序中的任何脚本。
我还将向您介绍数据过滤器或列切换器的使用。JMP 中的这两个功能均可用于选择特定数据,然后将所选数据应用到一个或多个显示。
我的原始表只是很多数据值,一些明显错误的需要手动更改,并带有动态显示图像
Names Default To Here( 1 );
dt = Current Data Table();
//Get the row number of the selected row in the current table
While( 1,
r = dt << get selected rows();
dt1 = New Table( "w", New Column( "x", set values( dt[r, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
);
//Check if there is a change in the selected row number in the original table, and redraw the diagram if it has changed
If( (r1 = dt << get selected rows()) != r,
dt1 = New Table( "w", New Column( "x", set values( dt[r1, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
);
);
//Check if any values in the original table have been modified, and if so, redraw the graphs
If( (r2 = dt << get selected rows()) == r | (r2 = dt << get selected rows()) == r1,
If( dt[r, 1 :: 13] != dt[r2, 1 :: 13] | dt[r2, 1 :: 13] != dt[r1, 1 :: 13],
dt1 = New Table( "w", New Column( "x", set values( dt[r1, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
)
;
)
);
如果您必须以以行为中心的方式布置数据,那么我相信您最好的选择是使用行状态处理程序。但是,如果您转换为以列为中心的结构,您将更好地适应 JMP 的正常操作。当您更改数据表中的数据时,您生成的任何直方图都会自动更新。 为此,所需要做的就是为分发平台设置 Autocalc 选项。
您可以轻松创建一个简单的选择器窗口,像现在选择行一样选择列,一旦选择,您的脚本就可以根据需要生成直方图。
谢谢吉姆!这很有帮助。
这个原始数据表是从数据库自动下载的,即按行;
除了设置行处理程序()的行之外,我还可以实时获取行号,
那么对于手动修改的号码,如何实时获知呢?
我也使用autocal(1),我更改了值,但分发平台不会自动更改。