阅读本文大约需要3分钟
主要内容:数据分析。
适用人群:Python初学者,数据分析师,或有志从事数据分析工作的人员。
准备软件:Anaconda(Spyder:代码编译)、Navicat Premium 12(数据库)。
此图来自于网络,侵删
从事IT项目管理这么多年,基本上已经遗弃编程技能,但从2019年开始接触Python,深深地迷上了这门语言,像硬件集成、数据分析,我都会用python来写。晓风想通过本文,让初学者们学会以下内容:
1、Pyecharts图表;
2、连接数据库;
3、大屏看板-监控中心。
今天,我们讲2、连接数据库
接上文,还是以柱状图为例。
1、首先,我们打开Navicat,“文件 - 新建连接 - MYSQL”,我这边起名新连接为“datacenter”,点击右键,新建数据库“warehouse_input”(名字可以自己起)
2、建完数据库,我们来建自己的数据库表,保存
3、点击该表,维护一些测试数据,完成数据库内容的创建
4、回到Anaconda - Spyder,打开之前编写的图表文件或新建文件,我们先把柱状图的代码修改为函数形式
from pyecharts import options as opts
from pyecharts.charts import Bar,Page
import pymysql
def bar(cos): #柱状图
c = (
Bar(init_opts=opts.InitOpts(bg_color="white"))
.add_xaxis(costomer)
.add_yaxis("订单数量", quantity)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts("客户订单数量"), datazoom_opts=opts.DataZoomOpts(is_show=True,range_start=0,range_end=100), toolbox_opts=opts.ToolboxOpts(orient="vertical",pos_left="90%",feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False)))
)
)
return c
5、添加import pymysql(连接数据库需要),from operator import itemgetter(将数据参数化时需要),这里我想呈现各客户的订单数量,那么SQL语句和连接数据库的代码如下
import pymysql
from operator import itemgetter
db = pymysql.connect(host="localhost", user="root", password="123456", database="warehouse_input")
sql = "select customer_name,sum(cloth_quantity) AS nums from po GROUP BY customer_name"
try:
cursor = db.cursor()
cursor.execute(sql)
cos = cursor.fetchall()
except Exception as e:
db.rollback()
print('事物处理失败',e)
else:
db.commit()
print('事物处理成功',cos)
cursor.close()
db.close()
6、接下来我们结合柱状图函数和数据库连接的内容,加入page函数
from pyecharts import options as opts
from pyecharts.charts import Bar,Page
import pymysql
from operator import itemgetter
def bar(cos): #柱状图
costomer = list(map(itemgetter(0), cos))
quantity = list(map(itemgetter(1), cos))
c = (
Bar(init_opts=opts.InitOpts(bg_color="white"))
.add_xaxis(costomer)
.add_yaxis("订单数量", quantity)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts("客户订单数量"),
datazoom_opts=opts.DataZoomOpts(is_show=True,range_start=0,range_end=100),
toolbox_opts=opts.ToolboxOpts(orient="vertical",pos_left="90%",feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False)))
)
)
return c
db = pymysql.connect(host="localhost", user="root", password="123456", database="warehouse_input")
sql = "select customer_name,sum(cloth_quantity) AS nums from po GROUP BY customer_name"
try:
cursor = db.cursor()
cursor.execute(sql)
cos = cursor.fetchall()
except Exception as e:
db.rollback()
print('事物处理失败',e)
else:
db.commit()
print('事物处理成功',cos)
cursor.close()
db.close()
page = Page()
page.add(
bar(cos)
)
page.render("bar.ht
7、最后,我们运行下,看下效果
学习到了这里,我们就可以学会了图表的动态数据呈现。好了,大家赶紧动起来,有空就把所有图表都操作一遍。今天的内容就到这里,下篇文章将会教大家怎么将多个图表布局在一个大屏上,敬请期待。愿我们一起成长!
如果觉得有用的话,请帮忙点赞、关注、收藏哦,感谢您的支持!