工作需要绘制曲线,我想python肯定是支持绘图的吧,google了一下,发现了matplotlib。下午google了一些帖子,目前实现了简单的绘图功能,不过还是一知半解,对代码并不完全理解,整理如下:
import numpy as np import pylab as p1 import sys fig_name=sys.argv[1] + ".png" #生成图片名 data=np.loadtxt(sys.argv[1], dtype=np.dtype([("t","S10"),("v", float)])); #从文件中读取输入数据 datestr=data["t"] #横轴 t=p1.datestr2num(datestr) v=data["v"] Fig=p1.figure(figsize=(24,12)) #图片大小 p1.plot_date(t,v,fmt="-o") p1.subplots_adjust(bottom=0.3) ax = Fig.gca(); ax.fmt_xdata = p1.DateFormatter('%y-%m-%d %H-%M:%S') #横轴以时间表示 p1.xticks(rotation=90) p1.xticks(t, datestr) ax.xaxis.set_major_formatter(p1.DateFormatter('%Y-%m-%d')) p1.grid() Fig.show() Fig.savefig(fig_name); #保存成文件,支持pdf、png等,不支持jpg
matplotlib绘图功能很强大,我只用到了皮毛,这里面的重点是横轴用时间字符串表示。
执行:python event_trend_analysis.py filename
结果: