matplotlib生成曲线图的python脚本

工作中经常要分析数据,比如网络并发量,DC响应时间等,借用matplotlib将数据生成曲线图,可以直观地分析数据的变化情况。

下面是生成曲线图的脚本,实际使用时修改某些值定制一下即可。

 1#!/usr/bin/env python
 2# -*- coding: utf-8 -*-
 3"""
 4File Function: 读取数据文件,生成曲线图
 5data source format:
 6     51 07:27:46
 7    106 07:27:47
 8    139 07:27:48
 9    326 07:27:49
10    185 07:27:50
11    ..
12Author: Kevin Hou
13Date: 2013/01/22
14"""
15
16import matplotlib.pyplot as pl
17from matplotlib.ticker import MultipleLocator, FuncFormatter
18import numpy as np
19
20MultipleLocator.MAXTICKS = 100000
21
22fig = pl.figure(figsize=(10,6))
23
24#77为文件数据个数
25= np.arange(0, 771)
26= []
27= []
28= []
29
30= open("yr_nr.txt","r")
31num=0
32for l in f:
33    y.append(int(l.strip().split(" ")[0]))
34    #隔两个点显示一个label,否则x轴显示不下
35    if num%3==0:
36        t.append(l.strip().split(" ")[1])
37    num += 1
38f.close()
39pl.plot(x, y, label='YR', color='red')
40
41= open("kk_nr.txt","r")
42for l in f:
43    z.append(int(l.strip().split(" ")[0]))
44f.close()
45pl.plot(x, z, label='KK')
46
47ax = pl.gca()
48
49# 设置两个坐标轴的范围
50pl.ylim(0,800)
51pl.xlim(0, np.max(x))
52
53# 设置图的底边距
54pl.subplots_adjust(bottom = 0.15)
55
56pl.grid() #开启网格
57
58# 主刻度
59ax.xaxis.set_major_locator( MultipleLocator(3) )
60ax.yaxis.set_major_locator( MultipleLocator(50) )
61
62# 主刻度文本用time_formatter函数计算
63#ax.xaxis.set_major_formatter( FuncFormatter( time_formatter ) )
64
65# 副刻度为
66#ax.xaxis.set_minor_locator( MultipleLocator(np.pi/20) )
67
68#获取当前x轴的label
69locs,labels = pl.xticks()
70#重新设置新的label,用时间t设置
71pl.xticks(locs, t)
72
73pl.ylabel("Number")
74pl.title("WCG => Samba")
75
76# 设置刻度文本的大小
77#for tick in ax.xaxis.get_major_ticks():
78#    tick.label1.set_fontsize(5)
79#pl.show()
80pl.legend()
81
82#自动调整label显示方式,如果太挤则倾斜显示
83fig.autofmt_xdate()
84
85#保存曲线为图片格式
86pl.savefig("wcg.png")

生成的曲线图:

posted on 2013-01-22 17:35 挑灯看剑 阅读(9861) 评论(0)  编辑 收藏 引用 所属分类: Python工作随笔

只有注册用户登录后才能发表评论。
<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

公告

【自我介绍】 08年南开大学硕士毕业 最近关注:算法、Linux、c++、高并发 爱好:滑旱冰、打乒乓球、台球、保龄球

常用链接

随笔分类(139)

文章分类

我常去的网站

技术博客(都是大牛)

技术站点

搜索

积分与排名