1

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

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)。

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

4

2 回答 2

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,我肯定会看一看。那里也有一个邮件列表,可能会提供更具体的帮助。

于 2010-04-29T18:47:47.417 回答
2

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

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

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

# 日期,标签 1-x,标签 1-y,标签 2-x,标签 2-y,标签 3-x,标签 3-y
     1、xx、yy、xx、yy、xx、yy
     .
     .
     .
于 2010-04-29T18:24:43.550 回答