bash – 如何在gnuplot中创建一个自动从y数据中减去最低值的图?
发布时间:2020-12-15 21:07:31 所属栏目:安全 来源:网络整理
导读:我正在绘制gnuplot中大量文件的创建时间,以查看它们是否是及时线性创建的(它们不是). 这是我的代码: #!/bin/bashstat -c %Y img2/*png timedataecho "set terminal postscript enhanced colourset output 'file_creation_time.eps'plot 'timedata'" | gnupl
我正在绘制gnuplot中大量文件的创建时间,以查看它们是否是及时线性创建的(它们不是).
这是我的代码: #!/bin/bash stat -c %Y img2/*png > timedata echo "set terminal postscript enhanced colour set output 'file_creation_time.eps' plot 'timedata'" | gnuplot 我遇到的问题是y数据是自unix开始时间以来的创建时间(以秒为单位),因此绘图在y轴上只有1.333 … e 09.我希望将第一个文件的创建时间缩放为零,以便相对创建时间可读. 我在许多数据绘图上下文中遇到了这个问题,所以我希望能够在gnuplot中执行此操作,而不是使用awk或某些实用程序来预处理数据. 我知道第一次将是最小的,因为文件是连续命名的,所以有没有办法访问文件中的第一个元素,类似于 `plot 'data' using ($1-$1[firstelement])` ? 解决方法
我认为你可以做那样的事情……(以下是未经测试的,但我认为它应该有用……).基本上,您必须绘制两次文件 – 第一次通过gnuplot获取有关数据集的统计信息.第二次,您使用在第一次运行中找到的内容来绘制您真正想要的内容.
set terminal unknown plot 'datafile' using 1:2 set terminal post enh eps color set output 'myfile.eps' YMIN=GPVAL_Y_MIN plot '' u 1:($2-YMIN) 如果你有gnuplot 4.6,你可以用stats命令做同样的事情. 编辑看来你想要第一个点提供偏移(对不起,误读了这个问题)…… 如果你想要第一个点提供偏移量,你可以做类似的事情(再次,未经测试 – 需要gnuplot> = 4.3): first=0; offset=0; func(x)=(offset=(first==0)?x:offset,first=1,x-offset) plot 'datafile' using (func($1)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |