python使用数据画一幅画
使用网站https://services.swpc.noaa.gov/text/predicted-sunspot-radio-flux.txt对黑子预测的数据作出一幅图表,并输出为PDF,使用的环境为python3.6
源代码如下:
import urllib.request
from urllib.request import urlopen
from reportlab.graphics.shapes import *
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'
COMMENT_CHARS='#:'
drawing=Drawing(400,200)
data=[]
for line in urlopen(URL).readlines():
line=line.decode()
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=[tuple(zip(times,pred)),tuple(zip(times,high)),tuple(zip(times,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,'Sunspots',fontsize=14,fillColor=colors.red))
renderPDF.drawToFile(drawing,'report3.pdf','Sunspots')
与python2中还是有一些语句不同的。
引用如下: