我需要绘制一些不完全友好格式的数据,大多数示例或用法都将内容放在一个很容易解析和绘图的漂亮列/表中。但是我有以下格式(并且我对如何解决这个问题感到有点困惑):
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)。
有没有人对解决这个问题的最佳方法有任何建议?
答案 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 . . .