gpt4 book ai didi

gnuplot - 如何在gnuplot中绘制图的导数?

转载 作者:行者123 更新时间:2023-12-03 23:32:23 25 4
gpt4 key购买 nike

我有一组随时间变化的变量测量值。我在以下格式的名为“结果”的文件中拥有这些度量:

# time sample
0 5
12 43
234 342


等等...

我可以使用以下命令在gnuplot中轻松绘制:

plot "results"


有什么方法可以直接从gnuplot绘制这些测量值关于时间(即dsample / dt)的导数,还是我必须单独计算导数并直接在gnuplot中绘制?

最佳答案

您可以通过定义一个函数来获取导数来做到这一点:

#!/usr/bin/env gnuplot

set term pngcairo
set output 'test.png'

# derivative functions. Return 1/0 for first point, otherwise delta y or (delta y)/(delta x)
d(y) = ($0 == 0) ? (y1 = y, 1/0) : (y2 = y1, y1 = y, y1-y2)
d2(x,y) = ($0 == 0) ? (x1 = x, y1 = y, 1/0) : (x2 = x1, x1 = x, y2 = y1, y1 = y, (y1-y2)/(x1-x2))

set key bottom left Left reverse

# offset for derivatives (half the x spacing)
dx = 0.25

plot 'data.dat' title 'data', \
'' u ($1-dx):(d($2)) title '1-variable derivative', \
'' u ($1-dx):(d2($1,$2)) title '2-variable derivative', \
'' u ($1-dx):(d2($1,$2)) smooth csplines title '2-variable derivative (smoothed)'


d2(x,y)(可能是您正在寻找的)仅计算除第一个数据点外的所有运行上升量(delta y超过delta x),而d(y)以相同的方式计算delta y。给定此数据文件

0.0 1
0.5 2
1.0 3
1.5 4
2.0 5
2.5 3
3.0 1


结果是

关于gnuplot - 如何在gnuplot中绘制图的导数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751226/

25 4 0
文章推荐: comments - Google Apps 脚本电子表格评论自动化
文章推荐: ssh - 通过 ssh 访问 Raspbian wheezy 桌面 GUI
文章推荐: jquery-mobile - jquery.mobile-1.3.1.min.map 在 jquery.mobile-1.3.1 发行版中的目的是什么?
文章推荐: google-chrome - Chrome 上