在GNUPLOT中使用日期/时间x轴标记点

在GNUPLOT中使用日期/时间x轴标记点,gnuplot,Gnuplot,我有一个简单的数据集,由一个日期/时间字段(YYYY-MM-DD HH:MM)和一个温度字段组成,每隔1分钟采集一次。我正在尝试学习如何在绘图上标记点,以便标记最高和最低温度 数据来自node.js应用程序中的SQL server,命令/数据通过STDIN传输到gnuplot,输出为PNG。我可以成功地绘制数据,但现在我只是尝试在绘图上标记最大和最小温度点,使用来自SQL查询的“坐标”,使最小或最大温度点看起来像(x,y)=(2021-02-11 18:34,72.57)。我尝试的每个在绘图上标

我有一个简单的数据集,由一个日期/时间字段(YYYY-MM-DD HH:MM)和一个温度字段组成,每隔1分钟采集一次。我正在尝试学习如何在绘图上标记点,以便标记最高和最低温度

数据来自node.js应用程序中的SQL server,命令/数据通过STDIN传输到gnuplot,输出为PNG。我可以成功地绘制数据,但现在我只是尝试在绘图上标记最大和最小温度点,使用来自SQL查询的“坐标”,使最小或最大温度点看起来像(x,y)=(2021-02-11 18:34,72.57)。我尝试的每个在绘图上标记点的命令都没有效果。我发现的例子通常不涉及日期/时间x轴

什么是神奇的ju-ju需要能够获取任意数据点并在绘图上标记时间/日期x轴?FWIW,因为数据是从SQL server检索的,所以我可以以任何方式格式化数据,使其成为绘制数据所需的最简单方法,更重要的是,标记我想要的点

提前感谢您的建议

贾斯汀

编辑(根据第一条注释):

以下是我在gnuplot命令中使用的内容:

set term png size 1280,600
unset output
set datafile separator ","
set xdata time
set timefmt "%Y-%m-%d %H:%M"
set format x "%H:%M"
set ylabel "Temperature ˚F
set xlabel "Time
set style line 100 lt 1 lc rgb "grey" lw 0.5
set grid ls 100
set xtics border
set xtics rotate
set key off
$mydata << EOD
// this is where my code "prints" the SQL data to STDIN of gnuplot
// data is formatted: 2021-02-11 22:48,74.42
EOD
plot $mydata using 1:2 with lines
它不会产生任何标签

下面是一个示例图,我想在其中标记最大和最小点:


当x轴为时间时,单位为秒。您正在寻找在秒(浮点值)和格式化的时间/日期字符串之间转换的函数

strtime(“timeformat”,s)
使用 时间格式说明符,并从1970年起将其转换为秒

strftime(“timeformat”,t)
通过应用timeformat生成字符串 时间t的说明符 自1970年以来以秒为单位给出

在您显示的情况下,这将对应于:

 myformat = "%Y-%m-%d %H:%M"
 set label 1 'Maximum' at strptime(myformat, "2021-02-11 19:10"), 72.50

到目前为止,您尝试了哪些命令来标记点?到目前为止,您是如何绘制数据的?您使用的是哪种打印样式?请提供一些最低限度的代码、示例数据和理想情况下的示例图。看,unixtime是神奇的酱汁。我不知道我是如何在文档中忽略了这一点的,因为我一直认为这是从0秒开始的。我可以轻松地将所有日期/时间数据更改为unixtime,从长远来看,这可能会使事情变得更容易。谢谢你的回答。
 myformat = "%Y-%m-%d %H:%M"
 set label 1 'Maximum' at strptime(myformat, "2021-02-11 19:10"), 72.50