使用gnuplot绘制多个图形

时间:2014-06-03 03:07:10

标签: shell gnuplot

我有这样的数据

Date       instance 1, 2, 3, 4, 5, 6
03-09-2013 0 0 1 0 0 1
03-09-2013 0 0 6 0 0 6
03-09-2013 0 0 2 0 0 6
03-09-2013 0 0 3 0 0 6
03-09-2013 0 0 1 0 0 6
03-09-2013 0 0 2 0 0 6
04-09-2013 0 0 4 0 0 4
04-09-2013 0 0 8 0 0 8
04-09-2013 0 0 2 0 0 8
04-09-2013 0 0 3 0 0 4
04-09-2013 0 0 1 0 0 8
04-09-2013 0 0 5 0 0 8

这只是大量数据的样本。每天有6列,显示6个不同的流程实例。

我必须为每一天选择最大数量的实例并将其绘制在图表上。

就像9月3日进程3有6个实例,9月4日有8个实例,我需要为每个日期选择最大实例数,并绘制一个图形,其中有6条不同的线描述每个进程的实例。 / p>

问题:我在Shell脚本中编写代码,如何为每天的每个进程获取最大数量的实例。有没有办法建立数据结构并找出答案。或者我需要使用Python或Perl吗?如果是的话,请指导。所有这些脚本语言对我来说都是全新的。

2)如何使用gnuplot进行绘图。示例

03-09-2013 2 0 2 3 0 7
04-09-2013 6 0 4 2 0 12
05-09-2013 7 0 6 1 0 14

我的图表应该有X轴的日期,没有。 Y轴的过程。每个实例的每一行,6个实例的6行。

1 个答案:

答案 0 :(得分:2)

我可以回答第二个问题(第一部分需要更多信息)。

使用类似

的数据文件
03-09-2013 2 0 2 3 0 7
04-09-2013 6 0 4 2 0 12
05-09-2013 7 0 6 1 0 14

你可以用

绘图
set xdata time
set timefmt "%m-%d-%Y"
plot for [ii=1:6] 'data.dat' using 1:ii title 'Instance '.ii

或者用{/ p>之类的内容替换plot for

plot 'data.dat' using 1:2 title 'Instance 1', \
'data.dat' using 1:3 title 'Instance 2', \
'data.dat' using 1:4 title 'Instance 3', \
'data.dat' using 1:5 title 'Instance 4', \
'data.dat' using 1:6 title 'Instance 5', \
'data.dat' using 1:7 title 'Instance 6'