在python的数据可视化中常用到Matplotlib库,通过Matplotlib展示一些数据是十分方便的事情,但我们并不满足处理一些“死数据”,如何将数据库中的数据取出来并用好看的图表展示呢!python提供了 MySQLdb ,Pymysql等库给我们使用。
python语言的3 x完全不向前兼容,Python2.x中使用的的MySQLdb并不支持python3。所以我们使用Pymysql对数据库进行连接操作。两者使用差别不大。
下面进入正题。首先我们需要安装pymysql。
pip install PyMySQL
接着是操作实例,数据库为lagou,表名为citys,数据如图。操作为将citys表中数据用直方图展示出来。
代码如下:
# -*- coding: utf-8 -*-
import pymysql
import matplotlib.pyplot as plt
##获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库
db=pymysql.connect(host="master",user='root',passwd="123456",port=3306,db="lagou",charset='utf8')
cursor=db.cursor()#获取一个游标
sql="select city,need from citys"
cursor.execute(sql)
result=cursor.fetchall() #result为元组
#将元组数据存进列表中
city=[]
need=[]
for x in result:
city.append(x[0])
need.append(x[1])
#直方图
plt.bar(range(len(need)), need, color='steelblue', tick_label=city)
plt.xlabel("城市名")
plt.ylabel("数量")
plt.title("城市职位需求图")
for x,y in enumerate(need):
plt.text(x-0.4, y+0.4, '%s' % y)
plt.show()
cursor.close()#关闭游标
db.close()#关闭数据库
效果图: