3.102 FAQ-633 如何在两点之间画一条线并求出其斜率和 Y 轴截距?
Last Update: 7/21/2018
此 LabTalk 脚本让用户在图上选择两个数据点,然后在它们之间绘制一条线,并在文本标签中显示其斜率和 y 轴截距值。
def EndToolbox { %A=getpts.xdata$; %B=getpts.data$; slope=(%B(%A[2])-%B(%A[1]))/(%A[2]-%A[1]); //计算两点的斜率 yintercept=%B(%A[2])-slope*%A[2]; //计算截距 %Z="slope=$(slope) yintercept=$(yintercept)"; label -p 10 0 -s -sa -n Ltext %Z; //添加文本标签 Ltext.background=1; xb1=%A[1];xb2=%A[2];yb1=%B(%A[1]);yb2=%B(%A[2]); draw -n Lline -l {xb1,yb1,xb2,yb2}; //在两点之间画一条直线 Lline.color=2; //将颜色设置为红色 delete -v xb1;delete -v xb2;delete -v yb1;delete -v yb2; delete -v slope;delete -v yintercept; doc -uw; //window refresh } getpts 2; //使用数据阅读器选择两个点
该脚本可以直接在 Script Window 中运行,也可以保持为 OGS 文件,然后在自定义的工具栏按钮中调用 OGS 文件来执行。
| 注: 该脚本是把所选的数据点所在的数据曲线作为一个寻值函数,对于给定的 X 值,脚本会在这条曲线中查找其所对应的 Y 值。如果你选择的数据点在曲线上存在重复的 X 值,则返回的 Y 值是在这条曲线中的第一个 X 值所对应的 Y 值。 |
Keywords:LabTalk, Linear Curve Fit, 线性拟合