MySQL数据表结构如下
MySQL数据表部分数据如下
Python代码如下
import pymysql
from matplotlib import pyplot as plt
#添加图形对象
fig = plt.figure()
x = fig.add_axes([0,0,1,1])
#连接数据库
conn=pymysql.connect(host = '127.0.0.1' # 连接名称,默认127.0.0.1
,user = 'root' # 用户名
,passwd='123456' # 密码
,port= 3306 # 端口,默认为3306
,db='kettle' # 数据库名称
,charset='utf8' # 字符编码
)
a = []
b = []
try:
cur = conn.cursor() # 生成游标对象
sql = "select 归属地, avg(流量收入) from qimo group by 归属地" # SQL语句
cur.execute(sql) # 执行SQL语句
data = cur.fetchall() # 通过fetchall方法获得数据
for i in data: # 打印输出前2条数据
a.append(i[0])
b.append(int(i[1]))
except Exception as e:
print(e)
finally:
cur.close() # 关闭游标
conn.close() # 关闭连接
print(a)
print(b)
#使得X/Y轴的间距相等
x.axis('equal')
#设置字体不然不会中文显示错误
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False
#绘制饼状图
plt.title("各地使用流量平均支出表")
x.pie(b,labels=a,autopct='%1.2f%%')
#显示图像
plt.show()
运行结果如下