簡體   English   中英

如何在 gnuplot 中繪制到數據點的切線?

[英]How to draw tangent line to a data point in gnuplot?

我想知道如何在 gnuplot 中從 csv 數據文件繪制一條到數據點的切線。 感謝幫助

我嘗試了某種配件,但它不起作用。

您如何指定切線的數據點? 按 x 值? 所有 x 值是否都有唯一的 y 值? 您提供的信息很少,也沒有示例數據,所以我做了一些假設。

將當前和先前的 x 值分別放入變量x1x0中。 如果切線xt的 x 值介於x0x1之間,則計算斜率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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM