在gnuplot中处理(复活节的)日期

在gnuplot中处理(复活节的)日期,gnuplot,Gnuplot,尽管尝试了各种组合,但我似乎不知道如何让gnuplot解析我的日期。我正在尝试创建一个图表,x轴上有年,y轴上有月和日。我得到的结果是一张图表,从左下角到右上角有一条直线,y轴上的日期被固定在“01/01”上,我一辈子都不知道出了什么问题。这里包括我回到最基本设置的努力: 我有一个脚本,它在int上循环并调用: for c in `seq 2014 2015`; do w=$(ncal -e -y $c) e=$(ncal -o -y $c) echo $c, $w, $e done 这将创建

尽管尝试了各种组合,但我似乎不知道如何让gnuplot解析我的日期。我正在尝试创建一个图表,x轴上有年,y轴上有月和日。我得到的结果是一张图表,从左下角到右上角有一条直线,y轴上的日期被固定在“01/01”上,我一辈子都不知道出了什么问题。这里包括我回到最基本设置的努力:

我有一个脚本,它在int上循环并调用:

for c in `seq 2014 2015`;
do
w=$(ncal -e -y $c)
e=$(ncal -o -y $c)
echo $c, $w, $e
done
这将创建以下数据:

2014, April 20 2014, April 20 2014
2015, April 5 2015, April 12 2015
...
Gnuplot命令:

set ydata time
set format y "%m/%d"
set timefmt "%B %d %Y"
set datafile separator ","

plot "< ./dump.sh" using 1:2 with lines title "western", \
    "< ./dump.sh" using 1:3 with lines title "eastern"
设置ydata时间
设置格式y“%m/%d”
设置时间表“%B%d%Y”
设置数据文件分隔符“,”
使用1:2和标题为“western”的线条绘制“<./dump.sh”\
“<./dump.sh”使用1:3,行标题为“东部”

任何帮助都将不胜感激。

y轴的输出格式只影响标签,而不影响位置。因此,标签中只有月和日仍然包括不断增长的年份,这给了您一条线

只需使用
set timemt“%B%d”
,它会忽略时间字符串的其余部分:

set datafile separator ","
set timefmt "%B %d"
set ydata time
set format y "%m/%d"

set style data lines
plot "< ./dump.sh" using 1:2 title "western", \
    "< ./dump.sh" using 1:3 title "eastern"
设置数据文件分隔符“,”
设置时间表“%B%d”
设置ydata时间
设置格式y“%m/%d”
设置样式数据行
使用1:2标题“西部”绘制“<./dump.sh”\
“<./dump.sh”使用1:3标题“东部”
不使用明确年份的数据使用2000年(版本4.6)或1970年(开发版本)。但这对你的申请根本不重要

这将给出(见第4.6.3节):


当我尝试这一点时,我得到了一个y轴,交替显示
'01/01'
'07/01'
,这是我所期望的-它给出了一年中的第一个和第二个日期。您可能会考虑设置Y-TEC在您从脚本中读取的实际日期。不幸的是,我不知道该怎么做。看,是的,这是有效的,尽管我不是100%确定如何。Gnuplot对我来说仍然有25%的魔力,但这很有帮助。因此,如果我理解正确,我的数据的日期列在使用“set ydata time”时与预期格式不匹配?这就是为什么必须解析月和日并将其输入plot命令的原因?对不起,我的解决方案有时太复杂了。在您的情况下,使用
设置timemt“%B%d”
就足够了,其余的时间字符串将被忽略。我更正了答案,很抱歉弄错了