python 画图小项目

小白在看了很多Python教程之后,觉得是时候做点什么小项目来练练书了

于是东找西找,找到了一个结合爬虫的绘图的小项目,虽然是小项目,但是毕竟我是个小白啊,所以还是踩了坑,调了bug

代码如下:

from urllib import urlopen                                   

  #urllib 是一个爬虫的库

from reportlab.graphics.shapes import *            

#reportlab是一个绘图的库

from reportlab.graphics.charts.lineplots import LinePlot

from reportlab.graphics.charts.textlabels import Label

from reportlab.graphics import renderPDF

URL = 'http://services.swpc.noaa.gov/text/predicted-sunspot-radio-flux.txt' 

 #网址是一个预测气温的TXT

COMMENT_CHARS = '#:'

drawing = Drawing(400, 200)

data = []

for line in urlopen(URL).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]

times = [row[0] + row[1]/12.0 for row in data]  

 #主要包括四个维度的数据,预测值,最高值、最低值、时间

lp = LinePlot()

lp.x = 50

lp.y = 50

lp.height = 125

lp.width = 300

#设置图的一些关于长、宽、高的属性

lp.data = [zip(times, pred),zip(times,high),zip(times, low)]

#这里用zip 函数将时间分别于预测值、最高值、最低值组合起来

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, 'Sunspots',fontSize=14,fillColor=colors.red))

#在250,150 的位置显示一个字号为14,颜色为红色的,Sunspots

renderPDF.drawToFile(drawing, 'report3.pdf','Sunspots')

#将画好的图片保存为PDF,存在代码的相同目录下

在完成这段代码的过程中踩的坑有:

1.reportlab库没有安装,no moudle for reportlab

解决方案:在anacoda 命令行里输入pip install reportlab ,联网之后即可安装完成

2.找到的代码,原来的网址显示404

解决方案:404下面告诉我们网站地址修改了,在百度里又找到了新的网址,在网址里又找到了新的数据,新的txt,但是新的txt里数据的维数不对,月份是用英文表示的,又提示不能由字符转换float,又重新找了一个txt,数据终于对的上了,于是终于可以看到图片了,好欣慰。


python 画图小项目_第1张图片
代码执行结果图

这个故事告诉我们:菜鸟也可以改一下代码,做出来点东西的,继续加油!!

你可能感兴趣的:(python 画图小项目)