如何使用gnuplot绘制非友好格式的数据?

时间:2010-04-29 13:56:54

标签: plot gnuplot

我需要绘制一些不完全友好格式的数据,大多数示例或用法都将内容放在一个很容易解析和绘图的漂亮列/表中。但是我有以下格式(并且我对如何解决这个问题感到有点困惑):

DATE1 label_1 xx yy
DATE1 label_2 xx yy
DATE1 label_3 xx yy

DATE2 label_2 xx yy
DATE2 label_3 xx yy

DATE3 label_1 xx yy
DATE3 label_2 xx yy
DATE3 label_3 xx yy

DATE4 label_2 xx yy
DATE4 label_3 xx yy
...continues

*为了便于阅读,我在日期之间添加了额外的空格。

**注意:在DATE2下,DATE4 label_1缺失,即数据文件可能有来去的标签,应该代表图表中的不连续性。

我想让X轴使用DATEX作为标签,然后为每个标签创建两行(分别为xx和yy)。

有没有人对解决这个问题的最佳方法有任何建议?

2 个答案:

答案 0 :(得分:3)

您最好的选择可能是使用Gunplot.py(http://gnuplot-py.sourceforge.net/)创建一个脚本来执行您需要的任务。然后,您可以像在gnuplot中那样构建绘图。

    g = Gnuplot.Gnuplot()
    g('set datafile separator " "')
    plot = "plot "
    plot += "'%s' using 1:3 title '($2)' with lines" % (filename))
    plot += ", '%s' using 1:4 title '($2)' with lines" % (filename))
    g(plot)

如果你还没有看过gnuplot.py,我肯定会看看。那里还有一个邮件列表,可能会提供更具体的帮助。

答案 1 :(得分:2)

我不太了解你想要制作的图形。点由两个坐标定义,我可以想象将多个数据集一起绘制以进行比较,这样就可以解释三个参数。第四个适合哪里?你想要一个聚类直方图吗?

无论如何,如果我得到的数据格式不适合gnuplot,我通常会做一些预处理来生成gnuplot的数据文件(使用Common Lisp或Perl)。

更新:根据您的澄清评论,我会将文件转换为以下格式:

# DATE, label-1-x, label-1-y, label-2-x, label-2-y, label-3-x, label-3-y
     1,        xx,        yy,        xx,        yy,        xx,        yy
     .
     .
     .