GNUPLOT-未定义时间序列图的所有点y值

GNUPLOT-未定义时间序列图的所有点y值,gnuplot,Gnuplot,我正在尝试使用GNUPLOT绘制时间序列数据,并在no_int1_date.dat中包含以下数据(仅一个片段): 我希望将第1列绘制为x轴(日期),第3列乘以乘数绘制为y轴(个人)。第2列包含索引或天数。我在源代码中使用以下行: set xdata time set timefmt "%m/%d/%Y" plot [100:370] "./data/no_int1_date.dat" u 1:($3*0.0639) w line lw 2 lc "

我正在尝试使用GNUPLOT绘制时间序列数据,并在
no_int1_date.dat
中包含以下数据(仅一个片段):

我希望将第1列绘制为x轴(日期),第3列乘以乘数绘制为y轴(个人)。第2列包含索引或天数。我在源代码中使用以下行:

set xdata time
set timefmt "%m/%d/%Y"
plot [100:370] "./data/no_int1_date.dat" u 1:($3*0.0639) w line lw 2 lc "red" title 'Individuals requiring hospitalization', \
     [100:370] "./data/no_int1_date.dat" u 1:($3*0.03) w line lw 2 lc "blue" title 'Individuals requiring intensive care'
命令gnuplot-p hospital时出错。gnuplot:

plot [100:370] "./data/no_int1_date.dat" u 1:($3*0.0639) w line lw 2 lc "red" title 'Individuals requiring hospitalization',     [100:370] "./data/no_int1_date.dat" u 1:($3*0.03) w line lw 2 lc "blue" title 'Individuals requiring intensive care',     1/0 lw 2 lc "red" dt 2 title "Hospital capacity",     1/0 lw 2 lc "blue" dt 2 title "Intensive care capacity" 
                                                                                                                                                                                                                                                                                                                                                                         ^
"./src/hospital.gnuplot", line 14: all points y value undefined!
但是,将源代码中的相同行修改为(注释掉指令并将列更改为索引或天数):

为什么我在尝试用日期绘制相同数据时出错?


Ubuntu 18.04,GNUPLOT 5.2 patchlevel 2

错误在于xrange的定义。指定x为格式为“月/日/年”的时间数据,但在plot命令中,xrange被写入
[100:370]
,与格式不匹配。我猜gnuplot正在将这些数字从1970年1月1日或其他时间转换为秒。您的数据点都不在此范围内,因此gnuplot无法绘制任何内容

可以使用与时间数据相同的格式指定xrange:

设置xrange[“1/25/20”:“1/30/20”]

绘图[“1/25/20”:“1/30/20”]。/data/no\u int1\u date.dat”…


编辑:如果要绘制线100到370,可以使用伪列0作为x轴:
plot[100:370]“data.dat”使用0:3

[100:370]
-这指定了什么?还要注意的是,
%Y
是一个4位数的年份,您真的想要年份
20
,而不是
2020
?我希望绘制从第100行到第370行的数据,如图的x轴所示。这是不对的吗?这似乎是导致问题的一段代码,你是对的。我把它调到
%y
。我不介意
20
2020
。同样的错误。出于好奇,有没有办法指定我希望从数据文件中绘制的线条?当然,有很多方法可以实现。我在回答中增加了一种可能性。
plot [100:370] "./data/no_int1_date.dat" u 1:($3*0.0639) w line lw 2 lc "red" title 'Individuals requiring hospitalization',     [100:370] "./data/no_int1_date.dat" u 1:($3*0.03) w line lw 2 lc "blue" title 'Individuals requiring intensive care',     1/0 lw 2 lc "red" dt 2 title "Hospital capacity",     1/0 lw 2 lc "blue" dt 2 title "Intensive care capacity" 
                                                                                                                                                                                                                                                                                                                                                                         ^
"./src/hospital.gnuplot", line 14: all points y value undefined!
# set xdata time
# set timefmt "%m/%d/%Y"
plot [100:370] "./data/no_int1_date.dat" u 2:($3*0.0639) w line lw 2 lc "red" title 'Individuals requiring hospitalization', \
     [100:370] "./data/no_int1_date.dat" u 2:($3*0.03) w line lw 2 lc "blue" title 'Individuals requiring intensive care'