<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 )})