加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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命令做同样的事情.
http://www.gnuplot.info/demo/stats.html

编辑看来你想要第一个点提供偏移(对不起,误读了这个问题)……

如果你想要第一个点提供偏移量,你可以做类似的事情(再次,未经测试 – 需要gnuplot> = 4.3):

first=0;
offset=0;
func(x)=(offset=(first==0)?x:offset,first=1,x-offset)
plot 'datafile' using (func($1))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读