当前位置: 移动技术网 > IT编程>脚本编程>Python > 利用Python绘制MySQL数据图实现数据可视化

利用Python绘制MySQL数据图实现数据可视化

2019年06月14日  | 移动技术网IT编程  | 我要评论

金刚葫芦娃小游戏,鹤壁人事考试网,三金医药招商网

本教程的所有python代码可以在网上的中获取。

考虑在公司里使用plotly?可以看一下plotly的on-premises。(注:on-premises是指软件运行在工作场所或公司内部,详见)

注意操作系统:尽管windows或mac用户也可以跟随本文操作,但本文假定你使用的是ubuntu系统(ubuntu桌面版或ubuntu服务器版)。如果你没有ubuntu server,你可以通过amazon的web服务建立一个云平台(阅读这份的前半部分)。如果你用的是mac,我们推荐你购买并下载vmware fusion,在上面安装ubuntu桌面版。你也可以通过zareason购买一台便宜的预装ubuntu桌面版/服务器版的笔记本或服务器。

使用python读取mysql的数据并绘图很简单,所有你需要的工具都可以免费下载。本文会展示怎么做。如果你遇到问题或者卡住了,可以给feedback@plot.ly发送邮件,也可以在本文下面评论,或者在tweeter上@plotlygraphs。
第1步:确保mysql已安装且在运行

首先,你需要有一台安装了mysql的计算机或服务器。你可以通过以下方法检查mysql是否安装:打开控制台,输入“mysql”,如果你收到mysql无法连接的错误,这意味着mysql安装了,但是没有运行。在命令行或“terminal”中,尝试输入sudo /etc/init.d/mysql start并按回车来启动mysql。

如果mysql没有安装,不要失望。在ubuntu中下载并安装只需一行命令:

shell> sudo apt-get install mysql-server --fix-missing

安装过程中会让你输入一个密码。安装结束后,你可以在终端中键入以下命令进入mysql控制台:
 

shell> sudo mysql -uroot -p

输入“exit”就可以退出mysql控制台,。

本教程使用mysql经典的“world”样例数据库。如果你想跟随我们的步骤,可以在mysql文档中心下载world数据库。你也可以在命令行中使用wget下载:
 

shell> wget http://downloads.mysql.com/docs/world.sql.zip

然后解压文件:
 

shell> unzip world.sql.zip

(如果unzip没有安装,输入sudo apt-get install unzip安装)

现在需要把world数据库导入到mysql,启动mysql控制台:
 

shell> sudo mysql -uroot -p

进入控制台后,通过以下mysql命令使用world.sql文件创建world数据库:
 

mysql> create database world;
mysql> use world;
mysql> source /home/ubuntu/world.sql;

(在上面的source命令中,确保将路径改为你自己world.sql所在目录)。
上述操作说明摘自mysql文档中心
第2步:使用python连接mysql

使用python连接mysql很简单。关键得安装python的mysqldb包。首先需要安装两项依赖:
 

shell> sudo apt-get install python-dev
shell> sudo apt-get install libmysqlclient-dev

然后安装python的mysqldb包:
 

shell> sudo pip install mysql-python

现在,启动python并导入mysqldb。你可以在命令行或者ipython notebook中执行:
 

shell> python
>>> import mysqldb

创建mysql中world数据库的连接:
 

>>> conn = mysqldb.connect(host="localhost", user="root", passwd="xxxx", db="world")

cursor是用来创建mysql请求的对象。
 

>>> cursor = conn.cursor()

我们将在country表中执行查询。
第3步:python中执行mysql查询

cursor对象使用mysql查询字符串执行查询,返回一个包含多个元组的元组——每行对应一个元组。如果你刚接触mysql语法和命令,在线的是一个很不错的学习资源。
 

>>> cursor.execute('select name, continent, population, lifeexpectancy, gnp from country');
>>> rows = cursor.fetchall()

rows,也就是查询的结果,是一个包含多个元组的元组,像下面这样:

2015330144147252.jpg (619×247)

使用pandas的dataframe来处理每一行要比使用一个包含元组的元组方便。下面的python代码片段将所有行转化为dataframe实例:
 

>>> import pandas as pd
>>> df = pd.dataframe( [[ij for ij in i] for i in rows] )
>>> df.rename(columns={0: 'name', 1: 'continent', 2: 'population', 3: 'lifeexpectancy', 4:'gnp'}, inplace=true);
>>> df = df.sort(['lifeexpectancy'], ascending=[1]);

完整的代码可以参见
第4步:使用plotly绘制mysql数据

现在,mysql的数据存放在pandas的dataframe中,可以轻松地绘图。下面的代码用来绘制国家gnp(国民生产总值)vs平均寿命的图,鼠标悬停的点会显示国家名称。确保你已经下载了plotly的python库。如果没有,你可以参考一下它的。
 

import plotly.plotly as py
from plotly.graph_objs import *
 
trace1 = scatter(
   x=df['lifeexpectancy'],
   y=df['gnp'],
   text=country_names,
   mode='markers'
)
layout = layout(
   xaxis=xaxis( title='life expectancy' ),
   yaxis=yaxis( type='log', title='gnp' )
)
data = data([trace1])
fig = figure(data=data, layout=layout)
py.iplot(fig, filename='world gnp vs life expectancy')

完整的代码在这份中。下面是作为一个iframe嵌入的结果图:

2015330144839609.jpg (690×521)

利用plotly的python用户指南中的气泡图教程,我们可以用相同的mysql数据绘制一幅气泡图,气泡大小表示人口的多少,气泡的颜色代表不同的大洲,鼠标悬停会显示国家名称。下面显示的是作为一个iframe嵌入的气泡图。

2015330144914465.jpg (690×497)

创建这个图表以及这个博客中的所有python代码都可以从这个中拷贝。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网