[英]How to draw tangent line to a data point in gnuplot?
我想知道如何在 gnuplot 中從 csv 數據文件繪制一條到數據點的切線。 感謝幫助
我嘗試了某種配件,但它不起作用。
您如何指定切線的數據點? 按 x 值? 所有 x 值是否都有唯一的 y 值? 您提供的信息很少,也沒有示例數據,所以我做了一些假設。
將當前和先前的 x 值分別放入變量x1
和x0
中。 如果切線xt
的 x 值介於x0
和x1
之間,則計算斜率m
和 y 軸偏移c
。 你的切線是y = m*x + c
。
如果你想 plot 與 function 相切,你可以使用這種方法。
腳本:
### plot a tangent to a dataset
reset session
# create some test data
$RawData <<EOD
0 0
1 1
2 4
3 2
4 1
5 2
EOD
set table $Data
plot $RawData u 1:2 smooth mcsplines
unset table
xt = 2.1
getTangent(colX,colY) = (x0=x1, y0=y1, x1=column(colX), y1=column(colY), \
sgn(xt-x0)!=sgn(xt-x1) ? (m=(y1-y0)/(x1-x0), c=y0-x0*m) : 0)
plot x1=y1=NaN $Data u 1:(getTangent(1,2),$2) w l lc "red" ti "Data", \
'+' u 1:(m*$1+c) w l lc "blue" ti sprintf("Tangent at x=%g",xt)
### end of script
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.