python十个项目之----画幅好画
来源:互联网 发布:弗兰茨约瑟夫 知乎 编辑:程序博客网 时间:2024/04/30 15:52
本次是用python创建图形,具体是利用图形创建PDF文件,使得文件中读数可视化。其实这个程序本身是没有什么难度的,程序一目了然。所以就不说什么了,我想说说我的收获:首先安装reportlab包,然后import reportlab检测是否安装成功。下面进入正题
from urllib2 import urlopenfrom reportlab.graphics.shapes import *from reportlab.graphics.charts.lineplots import LinePlotfrom reportlab.graphics.charts.textlabels import Labelfrom reportlab.graphics import renderPDFURL = 'http://www.swpc.noaa.gov/ftpdir/weekly/Predict.txt'COMMENT_CHARS = '#:'drawing = Drawing(400, 200)data = []for line in urlopen(URL, ‘100’).readlines(): if not line.isspace() and not line[0] in COMMENT_CHARS: data.append([float(n) for n in line.split()] )pred = [row[2] for row in data]high = [row[3] for row in data]low = [row[4] for row in data]time = [row[0] + row[1] / 12.0 for row in data]lp = LinePlot()lp.x = 50lp.y = 50lp.height = 125lp.width = 300lp.data = [zip(time, pred), zip(time, high), zip(time, low)]lp.lines[0].strokeColor = colors.blue lp.lines[1].strokeColor = colors.red lp.lines[2].strokeColor = colors.green drawing.add(lp)drawing.add(String(250, 150, 'Sunsplots', fontSize = 14, fillColor = colors.red))renderPDF.drawToFile(drawing, 'report2.pdf', 'Sunspots')
在我运行程序的时候发现运行了好久也没有生成PDF文档,所以我想可能是因为程序卡在了某个部分。据我分析我认为上面的程序可以分为三部分,一是获取数据(data[])
二是数据处理(pred,high,low,time),三是设置LinePlot类。所以我想只能是在获取数据方面花费了较多时间,所以我就如下程序检测了一下果然是我想的这样
检测程序如下:
from urllib2 import urlopenURL = 'http://www.swpc.noaa.gov/ftpdir/weekly/Predict.txt'w = urlopen(URL)
我发现urllib2相对与urllib在使用urlopen方面要好。因为urllib2.urlopen里面有一个timeout可以设置,因为当我用检测程序时候好几次都是强制关闭的终端要是设置了
timeout那么就好多了。所以我用了urllib2
0 0
- python十个项目之----画幅好画
- Python项目之画幅好画
- python项目练习二:画幅好画
- python项目练习二:画幅好画
- Python项目二:画幅好画
- python项目练习二:画幅好画
- python基础教程:画幅好画
- python基础教程里的项目2:画幅好画
- python学习(一):画幅好画
- 画幅好画
- Python基础教程实践2,画幅好画(win7,64位系统)
- Python基础教程实践2,画幅好画(win7,64位系统)
- python十个项目之----即时标记
- python十个项目之----万能的XML
- python十个实战项目
- python十个实战项目
- python十个实战项目
- python十个实战项目
- mysql断线重连 字符集没设置的bug
- rapidsvn的安装(ubuntu12.04)
- Java反射机制之成员变量的反射
- LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构(原创整理来自IBM)
- UVALive 6609(Minimal Subarray Length)维护递增序列|RMQ
- python十个项目之----画幅好画
- linux 入门简单命令
- MII/MDIO接口详解
- 学习MFC
- 关于button
- inflate函数及其使用例子 笔记
- Java利用httpasyncclient进行异步HTTP请求
- ubuntu12.04的NFS配置
- 柱状图中找到最大的矩形