python生成SVG图片

python 读取mysql数据,生成svg图片

工具

pygal

MySQLdb:

  1. 安装:pip install mysql-python

  2. 下载:这里下载

祭出全部代码:

# 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()生成折线图....诶,扯不下去了,结贴睡觉。
图片描述


冻龄大叔
88 声望1 粉丝

做一枚精致的壮汉