Python利用Plotly实现对MySQL中的数据可视化

Mysql表数据:

demo.sql内容

create table demo(
 id int
,product varchar(50)
,price decimal(18,2)
,quantity int
,amount decimal(18,2)
,orderdate datetime
);
insert into demo
select 1,‘AAA‘,15.2,5,76,‘2017-09-09‘ union all
select 2,‘BBB‘,10,6,60,‘2016-05-18‘ union all
select 3,‘CCC‘,21,11,231,‘2014-07-11‘ union all
select 4,‘DDD‘,55,2,110,‘2016-12-24‘ union all
select 5,‘EEE‘,20,4,80,‘2017-02-08‘ union all
select 6,‘FFF‘,45,2,90,‘2016-08-19‘ union all
select 7,‘GGG‘,33,5,165,‘2017-10-11‘ union all
select 8,‘HHH‘,5,40,200,‘2014-08-30‘ union all
select 9,‘III‘,3,20,60,‘2015-02-25‘ union all
select 10,‘JJJ‘,10,15,150,‘2015-11-02‘;

实现效果如下:

Python代码:

 1 import pymysql
 2 import pandas as pd
 3 import plotly.plotly
 4 import plotly.graph_objs as pg
 5
 6
 7 def bar_chart(host, port, user, passwd, dbname, charset,output_path):
 8     try:
 9         conn = pymysql.Connection(
10             host=host,
11             port=port,
12             user=user,
13             passwd=passwd,
14             db=dbname,
15             charset=charset
16         )
17         cur = conn.cursor()
18         cur.execute("select * from demo;")
19         # cursor对象使用MySQL查询字符串执行查询,返回一个包含多个元组的元组——每行对应一个元组
20         rows = cur.fetchall()
21         # print(rows)
22
23         # 使用Pandas的DataFrame来处理每一行要比使用一个包含元组的元组方便
24         # 下面的Python代码片段将所有行转化为DataFrame实例
25         df = pd.DataFrame([[ij for ij in i] for i in rows])
26         print(df)
27         df.rename(columns={0: ‘id‘, 1: ‘product‘, 2: ‘price‘, 3: ‘quantity‘, 4: ‘amount‘, 5: ‘orderdate‘}, inplace=True)
28         # df = df.sort([‘LifeExpectancy‘], ascending=[1])
29
30         date_price = pg.Bar(x=df["product"], y=df["price"], name=‘价格‘)
31         date_quantity = pg.Bar(x=df["product"], y=df["quantity"], name=‘数量‘)
32         date_amount = pg.Bar(x=df["product"], y=df["amount"], name=‘总价‘)
33         data = [date_price, date_quantity, date_amount]
34
35         layout = pg.Layout(barmode=‘group‘, title="各产品销售情况")
36         fig = pg.Figure(data=data, layout=layout)
37         plotly.offline.plot(fig, filename=output_path)
38
39     finally:
40         if conn:
41             conn.close()
42
43
44 if __name__ == ‘__main__‘:
45     output_path = "C:/Users/fuqia/Desktop/bar.html"
46     bar_chart("localhost", 3306, "root", "123456", "test", "utf8", output_path)

输出df内容如下:

原文地址:https://www.cnblogs.com/fuqia/p/8998290.html

时间: 2024-10-28 03:55:42

Python利用Plotly实现对MySQL中的数据可视化的相关文章

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm

利用PRTG实现对cisco路由器的cpu负载、端口流量等的监控

一.实验目的及前期准备 用gns3.vmware模拟真实的环境,利用prtg实现对cisco路由器状态的监控 前期准备:GNS3仿真路由软件和VMware虚拟软件,PRTG. 二.实验步骤 1)搭建如下拓扑环境 VMware server有2张网卡,一张(out)桥接到真实主机(Windows7)的网卡,另一张(in)连接到GNS3的R1路由器的e1/0上:R1路由器的e1/1和VMwar winxp的网卡相连. a)VMware安装一个server2003系统和一个xp系统,并虚拟3张虚拟网卡

Zabbix配合fpmmm(mpm)实现对Mysql的全面监控

Zabbix使用fpmmm(mpm)模块实现对Mysql的全面监控(Performance Monitor for MySQL) fpmmm is the FromDualPerformance Monitor for MySQL and MariaDB and the counterpart to the MySQL EnterpriseMonitor from Oracle.With fpmmm you can monitor your MySQL/MariaDB databases and

Android下通过root实现对system_server中binder的ioctl调用拦截

Android下通过root实现对system_server中binder的ioctl调用拦截 分类: Android2013-06-19 18:09 779人阅读 评论(0) 收藏 举报 作 者: Passion时 间: 2012-10-18,13:53:53链 接: http://bbs.pediy.com/showthread.php?t=157419 Android下通过root实现对system_server中binder的ioctl调用拦截作者:passion2012-10-18关键

Windows下Java程序实现对Mysql数据库的插入,删除,修改和查询

运行环境:Windows7,Eclipse,MySql,JDK1.7,mysql-connector-java-5.1.17-bin.jar 1 //import java.io.*; 2 import java.util.*; 3 import java.sql.*; 4 5 /** 6 * 7 * @date 2014-05-20 8 * @author asif 9 * @作用 java实现对mysql数据库的增减删查 10 * @bug 插入,删除,更新的时候异常停止 11 * 12 *

shell实现对mysql数据库的增、删、改、查操作

shell实现对mysql数据库的增.删.改.查操作 #!/bin/bash #数据库信息 HOSTNAME="192.168.111.84" PORT="3306" USERNAME="root" PASSWORD="" DBNAME="test_db_test" TABLENAME="test_table_test" #也可以写 HOSTNAME="localhost&qu

zabbix实现对mysql数据库主从监控

1.主从关系建立 配置mysql-master端: 1)修改mysql-master的配置文件 [[email protected] ~]# vim /etc/my.cnf [mysqld] server_id=1 innodb_file_per_table datadir=/data/mysql socket=/var/lib/mysql/mysql.sock log-bin=/data/log-bin/bin binlog_format=row -- 2)启动mysql服务,并授权从服务用户

Vusual C++连接Mysql和从MySql中取出数据的API介绍

.1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag) 2.1.2 参数说明: • 第一个参数应该是一个现存MYSQL结

Java利用POI导入导出Excel中的数据

     首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地址http://poi.apache.org/download.html,有兴趣的朋友也可以去看看其中的API.      下面分享一下在对POI进行基本操作时觉得需要注意的两点:       1.POI中针对xlsx/xls是需要create different Workbook instance