python生成SVG图片
python 读取mysql数据,生成svg图片
工具
pygal
MySQLdb:
安装:pip install mysql-python
下载:这里下载
祭出全部代码:
# coding=utf-8
import pygal
import MySQLdb
def get_data():
db=MySQLdb.connect(host='localhost',user='root',passwd='***',db='movie',charset='utf8')
cursor = db.cursor()
cursor.execute('select grade,count(2) from movie_info group by grade;')
datas=cursor.fetchall()
count=[]
for data in datas:
count.append(int(data[1]))
#grade=data[0]
#count=data[1]
return count
def main():
a=range(81,97)
grade = []
for b in range(81,97):
c=b/10.0
grade.append(c)
chart_count=get_data()
#for chart_count in chart_data:
movie_chart=pygal.Line()
movie_chart.title='movie chart'
movie_chart.x_labels=map(str, grade)
movie_chart.add('count',chart_count)
movie_chart.render_to_file(r'C:\Users\legolas\Desktop\movie_chart.svg')
if __name__ == '__main__':
main()
开始分析代码
操作数据库
在我上一篇文章中生成过爬虫数据库,你们可以先看下,在这里,先用
MySQLdb
模块的connect
方法创建链接对象,接着创建一个cursor光标对象.
注意:链接/光标模式是数据库编程中常用的模式
链接模式除了要链接数据库之外,还要发送数据库信息,处理回滚操作,创建新的光标对象,等等。
一个光标跟踪一种状态信息,比如跟踪数据库的使用状态,当有多个数据库,正好需要向所有数据库写内容,就需要多个光标来处理,光标内包含最后一次的查询结果,所以可以使用 fetchone() 方法获取一条数据,
一个连接可以用多个光标。
处理数据库数据
通过
datas=cursor.fetchall()
获取到tuple格式的数据,先定义一个空的list
用来装数据。用for
遍历读出数据。select grade,count(2) from movie_info group by grade;
查询评分,并统计各个评分的数量,按评分高低排序。
主程序
分析豆瓣电影top250,可以看出,分数在8.1至9.7之间,为了方便,直接通过→
for b in range(81,97):
c=b/10.0
生成
`8.1,8.2,8.3,8.4......9.7
数组movie_chart=pygal.Line()
生成折线图....诶,扯不下去了,结贴睡觉。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。