<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在做一个非线性拟合模型,有 7 个数据点,范围始终从 500 到 1700。绘图显示 X 轴范围为 -250 到 1750。如何将 x 轴设置为 540 到 1750?我尝试访问轴框(2)和ScaleBox,但日志总是说找不到它。这是我目前拥有的。
dt << 新列( "模型", 公式( 参数( {L = 850, D = 4000, U =0.1}, (((1 - U) / 2) * (cos(pi()*(:BarLength / L)) + 1) + U) * exp(-1*(:BarLength / D)))));
dt << 选择其中( :SiteColumn == "J" ) << 排除 << 隐藏;
标题x = wf || “_PSPP_FIT”;
MES1 = 新窗口( 标题x,
nl = dt << 非线性(
Y(:规范传输),
X(:型号),
xaxis = nl[轴框(2)],
xaxis << 轴设置(最大(1750),最小(450)),
参数界限( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
通过(:FlashField,:ReqWaveLn),
发送至报告(
Dispatch( {}, "控制面板", OutlineBox, {关闭( 1 )} ),
Dispatch( {"Plot"}, "1" , ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), 小刻度( 1 )})
//Dispatch( {}, "1", ScaleBox, {Inc( 250 ), 小刻度( 1 )} )
//Dispatch( {}, "1", axis box(2), {Min( 450 ), Max( 1750 ), Inc( 250 ), Minor Ticks( 1 )} )
//Dispatch( {"Plot"}, "非线性图", FrameBox, {Frame Size( 378, 262 )} ),
//Dispatch( {}, "解决方案", OutlineBox, {Close( 1 )} )
)
);
nl << 完成;
);
奇怪的是,如果我手动调整轴,然后复制脚本,它就会准确地显示上面的内容。手动更改其中一张图上的轴并复制脚本显示如下:
非线性(
Y(:规范传输),
X(:型号),
参数界限( L( 500, 1300 ), D( 200, 20000 ), U( 0, 1 ) ),
牛顿,
结束,
其中(:FlashField ==“CF1”&:ReqWaveLn == 769.1172),
发送至报告(
Dispatch( {}, "控制面板", OutlineBox, {关闭( 1 )} ),
派遣(
{“阴谋”},
“1”,
秤盒,
{最小值( 450 )、最大值( 1750 )、增量( 500 )、小刻度( 1 )}
)
)
)
我无法重现 X 轴具有如此宽范围的初始非线性图,但我的猜测是 :SiteColumn=="J" 的某些 X 值是负数。 如果是这种情况,则轴最小值基于负值,即使它们被隐藏和排除。
我建议移动x轴之外的陈述非线性()平台调用,因为我认为诸如此类的显示框消息在平台调用中无效:
xaxis = 报告(nl)[轴框( 2 )];
xaxis << 轴设置( 最大值( 1750 ), 最小值( 450 ) );
另外,请注意轴框是以下标报告(荷兰语)而不是NL 。 Axis Box位于报表层,而不是平台层。
至少在我为测试这一点而编写的玩具示例数据中,我能够删除脚本中的所有 Send To Report Dispatch() 部分,并仅使用上面的两个 xaxis 语句将 X 轴范围设置为 450 到 1750。
请告诉我这是否适合您,或者您是否仍然看到较宽的 X 轴范围。
谢谢,
迈克尔
只是一个猜测......
尝试在此行末尾添加一个逗号:
Dispatch( {"Plot"}, "1" , ScaleBox,{Min( 450 ), Max( 1750 ), Inc( 500 ), 小刻度( 1 )})