Gnuplot条件打印:关于日期的stringcolumn()函数

Gnuplot条件打印:关于日期的stringcolumn()函数,plot,conditional-statements,gnuplot,Plot,Conditional Statements,Gnuplot,我有以下数据(示例): 我想在x轴和y轴的第二列上绘制日期 在这种情况下,它只能绘制日期等于“07/22/2013”的行 这就是我所尝试的: set datafile separator " " set xdata time set timefmt "%m/%d/%Y" set xrange ["07/21/2013" : "07/23/2013"] set yrange [3000:21000] set format x "%m/%d" plot "test_date.txt" us

我有以下数据(示例):

我想在x轴和y轴的第二列上绘制日期

在这种情况下,它只能绘制日期等于“07/22/2013”的行

这就是我所尝试的:

set datafile separator " "
set xdata time
set timefmt "%m/%d/%Y"   
set xrange ["07/21/2013" : "07/23/2013"]
set yrange [3000:21000]  
set format x "%m/%d"
plot "test_date.txt" using (stringcolumn(1) eq "07/22/2013"? $1:1/0):2 w p title "spots" lc 7
因此,Gnuplot尝试绘制digram,但未设置数据点(见下图“结果”)

有人知道为什么吗?我是否应该使用“timecolumn()”而不是“stringcolumn()”?如果是的话,我会怎么做


如果有任何提示,我将不胜感激。

我想问题是,
$1
试图提取一个数字,但只能找到
07
。如果您按下终端窗口上的自动缩放按钮,您将看到有一些数据,但不是您所期望的位置
“00:07”

一个快速解决方法是将
$1
替换为
timecolumn(1)
。 根据Ethan的说法,set-xdata-time是早期gnuplot版本的遗留版本(但仍然有效)。我会这样做:

代码:

### time data plot with ternary filter
reset session

$Data <<EOD
#Time      Data
07/22/2013 6286
07/22/2013 10695
07/22/2013 17868
07/22/2013 18880
07/22/2013 19206
07/22/2013 20365
07/22/2013 18459
07/11/2013 3420
07/11/2013 3256
EOD

myTimeFmt = "%m/%d/%Y"
set xrange[strptime(myTimeFmt,"07/21/2013"):strptime(myTimeFmt,"07/23/2013")]
set yrange [3000:21000]  
set format x "%m/%d" time

plot $Data u (strcol(1) eq "07/22/2013" ? timecolumn(1,myTimeFmt):NaN):2 w p title "spots" lc 7
### end of code
带三值滤波器的时间数据图 重置会话
$Data我用您的建议替换了相关代码段。它现在对我来说很好,包括timecolumn这个东西!多谢各位
### time data plot with ternary filter
reset session

$Data <<EOD
#Time      Data
07/22/2013 6286
07/22/2013 10695
07/22/2013 17868
07/22/2013 18880
07/22/2013 19206
07/22/2013 20365
07/22/2013 18459
07/11/2013 3420
07/11/2013 3256
EOD

myTimeFmt = "%m/%d/%Y"
set xrange[strptime(myTimeFmt,"07/21/2013"):strptime(myTimeFmt,"07/23/2013")]
set yrange [3000:21000]  
set format x "%m/%d" time

plot $Data u (strcol(1) eq "07/22/2013" ? timecolumn(1,myTimeFmt):NaN):2 w p title "spots" lc 7
### end of code