如何让图形构建器根据数据为 Y 变量分配变量比例大家好,
我一直在整个社区讨论中搜索这个主题,但到目前为止我还没有运气。
如何让图形构建器根据数据范围为 Y 变量分配变量比例?
使用 BigClass 数据示例 如果我有多个要绘制的图表,我将使用以下脚本:
dt= Open ("Big Class.JMP");
win = New window("Graphs", lub = Lineup Box (Ncol(2)));
Sexs = (Associative Array(Column (dt, "sex"))<<GET keys=""></GET>这段代码对我有用。此外,Y 刻度会自动调整,非常棒。 但是,如果我想保留一些特征,比如假设我希望 Y 最小值为 55,但我想让 JMP 根据数据范围选择 Y 最大值。 在这种情况下我该怎么做?
在我的情况不同,我希望 Y 最小值始终为零,因为我有一条所有值都从零开始的曲线,但出于某种原因,JMP 将变量轴设置设置为从负数开始。 尽管如此,即使我希望将值显示在所有图表的特定 Y 最小值上,我也无法让 Y Max 根据数据范围自动更改或直到实际 Y 最大值。
使用上面的脚本并手动执行此操作,当将 Y minmum 设置为 55 时,我会得到结果脚本行:
SendToReport(Dispatch({},"height",ScaleBox,{Min( 55 ), Inc( 5 ), Minor Ticks( 1 )}));您将看到生成的两个图表将具有相同的 Y 最大值,并且设置为低于 70,即使其中一个图表的数据直到 70。
有谁知道如何编写一个脚本,允许 Y 最大值根据数据范围进行更改,或者根据已定义的本地过滤器设置最大值?
谢谢
回复:如何让图形构建器根据 da 为 Y 变量分配变量比例非常感谢吉姆。
回复:如何让图形构建器根据 da 为 Y 变量分配变量比例看起来好像两个图表的最大值都被卡住了。但是,这是一个允许图表独立运行的解决方法。
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
Sexs = (Associative Array( Column( dt2, "sex" ) ) << Get keys);
For( i = 1, i <= N Items( Sexs ), i++,
dt2 << select where( :sex == sexs[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :sex, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Sex ),
Where( :Sex == Sexs[i] ),
Display( :Sex, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
)
;
);