2013-06-27 39 views
2

我开始记录我跑步的日子以及距离。我喜欢用盒子来绘制这个图表来概述我最近的活跃程度。重叠的x坐标相同的两个数据点

我今天添加了昨天的数据时遇到了问题。

从05/04/13可以看到,有两次运行,并且该图在同一天显示了两个框(最左边的框)。我喜欢这种行为。 2013年6月26日我又跑了两次,但这次情节只显示了一个(最右边的框)。在玩了一段时间之后,我意识到这是因为在05/04,更大的数字(第2列)首先出现,因此较小的数字被绘制在最上面。 06/26的情况恰恰相反,结果只能看到当天较大的数字。

有没有办法解决这个问题,而不改变我的数据文件?

如果可以在剧情脚本中做,我不必看我如何输入数据到我的文件。


下面是数据:

05/04/13 1.59 
05/04/13 0.81 
05/05/13 1.56 
05/06/13 1.90 
05/08/13 2.77 
05/11/13 2.19 
05/12/13 0.93 
05/14/13 2.50 
05/15/13 1.04 
05/16/13 1.66 
06/02/13 4.02 
06/03/13 1.80 
06/04/13 1.04 
06/05/13 0.93 
06/12/13 1.18 
06/15/13 1.78 
06/16/13 1.26 
06/19/13 0.86 
06/21/13 0.93 
06/26/13 1.05 
06/26/13 1.39 

脚本:

set terminal x11 nopersist size 1200,645 

unset mouse 
unset key 
unset label 
unset grid 

set boxwidth 86400 absolute 
set style fill solid 1.00 border lt -1 
set bmargin at screen 0.08 

set xdata time 
set timefmt x "%m/%d/%y" 
set format x "%b %d" 
set xtics 86400 nomirror rotate by -90 
set mxtics 0 
set xrange [ "05/01/13" : "06/30/13" ] noreverse nowriteback 

set ylabel "Distance" 
set ylabel textcolor lt -1 rotate by -270 
set yrange [ 0.00000 : 4.50000 ] noreverse nowriteback 

plot "/Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

情节的图像: An image of the plot

+0

最简单的就是编写一个'awk'脚本来转换你的数据。然后,您可以在剧本脚本内部操作awk脚本,以便不触摸原始数据。它会变成'plot“ Bernhard

回答

1

对于这种类型的文件,这不是”这些日子的顺序真的很重要,但正如你提到的那样,da的顺序ta很重要。我能够获得所需要的输出,只需更换

plot "/Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

通过

plot "<sort -r /Users/user/Dropbox/nvalt/walks.txt" using 1:2 with boxes lt rgb "#777777" 

这也应该就在同一天两个以上的数据点的工作。

+0

谢谢,这个作品完全像我希望的那样!一个问题,但我认为排序命令只是一个UNIX命令,我瞥了一下排序手册页,看到-r只是“反转比较的结果”。我很好奇为什么它会颠倒问题数据集,而不是像我想要的那样工作的第一个条目? – mindheavy

+0

@mindheavy因为它排序第一。所以先按日期,然后按第二列(但从低到高)。但是,你希望它们高到低,因此'-r'。假设你只想显示顶栏,那么你可以使用没有标志的“排序”。 – Bernhard

+0

对,有道理。谢谢你的帮助。 – mindheavy

相关问题