咱们天山,木有做微信公众号商家版登录的商家么

利用Python绘制MySQL数据图实现数据可视化
作者:Plotly
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了利用Python绘制MySQL数据图实现数据可视化,其中包括Python与MySQL的连接搭建、用Python执行MySQL语句查询等内容,需要的朋友可以参考下
本教程的所有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”样例数据库。如果你想跟随我们的步骤,可以在下载world数据库。你也可以在命令行中使用wget下载:
shell& wget /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
mysql& USE
mysql& SOURCE /home/ubuntu/world.
(在上面的SOURCE命令中,确保将路径改为你自己world.sql所在目录)。
上述操作说明摘自。
第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,也就是查询的结果,是一个包含多个元组的元组,像下面这样:
使用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')
完整的代码在这份中。下面是作为一个嵌入的结果图:
利用Plotly的中的气泡图教程,我们可以用相同的MySQL数据绘制一幅气泡图,气泡大小表示人口的多少,气泡的颜色代表不同的大洲,鼠标悬停会显示国家名称。下面显示的是作为一个嵌入的气泡图。
创建这个图表以及这个博客中的所有python代码都可以从这个中拷贝。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具在Python中对MySQL中的数据进行可视化 - Python - 伯乐在线
& 在Python中对MySQL中的数据进行可视化
本教程的所有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中下载并安装只需一行命令:
; html-script: false ]shell& sudo apt-get install mysql-server --fix-missing
; html-script: false ]shell> sudo apt-get install mysql-server --fix-missing
安装过程中会让你输入一个密码。安装结束后,你可以在终端中键入以下命令进入MySQL控制台:
; html-script: false ]shell& sudo mysql -uroot -p
; html-script: false ]shell> sudo mysql -uroot -p
输入“exit”就可以退出MySQL控制台,。
本教程使用MySQL经典的“world”样例数据库。如果你想跟随我们的步骤,可以在下载world数据库。你也可以在命令行中使用wget下载:
; html-script: false ]shell& wget /docs/world.sql.zip
; html-script: false ]shell> wget http://downloads.mysql.com/docs/world.sql.zip
然后解压文件:
; html-script: false ]shell& unzip world.sql.zip
; html-script: false ]shell> unzip world.sql.zip
(如果unzip没有安装,输入sudo apt-get install unzip安装)
现在需要把world数据库导入到MySQL,启动MySQL控制台:
; html-script: false ]shell& sudo mysql -uroot -p
; html-script: false ]shell> sudo mysql -uroot -p
进入控制台后,通过以下MySQL命令使用world.sql文件创建world数据库:
; html-script: false ]mysql& CREATE DATABASE
mysql& USE
mysql& SOURCE /home/ubuntu/world.
; html-script: false ]mysql& CREATE DATABASE mysql& USE mysql& SOURCE /home/ubuntu/world.sql;
(在上面的SOURCE命令中,确保将路径改为你自己world.sql所在目录)。
上述操作说明摘自。
第2步:使用Python连接MySQL
使用Python连接MySQL很简单。关键得安装python的MySQLdb包。首先需要安装两项依赖:
; html-script: false ]shell& sudo apt-get install python-dev
shell& sudo apt-get install libmysqlclient-dev
; html-script: false ]shell> sudo apt-get install python-devshell> sudo apt-get install libmysqlclient-dev
然后安装Python的MySQLdb包:
; html-script: false ]shell& sudo pip install MySQL-python
; html-script: false ]shell> sudo pip install MySQL-python
现在,启动Python并导入MySQLdb。你可以在命令行或者IPython notebook中执行:
; html-script: false ]shell& python
&&& import MySQLdb
; html-script: false ]shell> python>>> import MySQLdb
创建MySQL中world数据库的连接:
; html-script: false ]&&& conn = MySQLdb.connect(host="localhost", user="root", passwd="XXXX", db="world")
; html-script: false ]&&& conn = MySQLdb.connect(host="localhost", user="root", passwd="XXXX", db="world")
cursor是用来创建MySQL请求的对象。
; html-script: false ]&&& cursor = conn.cursor()
; html-script: false ]&&& cursor = conn.cursor()
我们将在Country表中执行查询。
第3步:Python中执行MySQL查询
cursor对象使用MySQL查询字符串执行查询,返回一个包含多个元组的元组——每行对应一个元组。如果你刚接触MySQL语法和命令,在线的是一个很不错的学习资源。
; html-script: false ]&&& cursor.execute('select Name, Continent, Population, LifeExpectancy, GNP from Country');
&&& rows = cursor.fetchall()
; html-script: false ]&&& cursor.execute('select Name, Continent, Population, LifeExpectancy, GNP from Country');&&& rows = cursor.fetchall()
rows,也就是查询的结果,是一个包含多个元组的元组,像下面这样: ((‘Aruba’, ‘North America’, 103000L, 78.4, 828.0), (‘Afghanistan’, ‘Asia’, L, 45.9, 5976.0), (‘Angola’, ‘Africa’, L, 38.3, 6648.0), (‘Anguilla’, ‘North America’, 8000L, 76.1, 63.2) …
其中的每个元组对应一行。绘成表格,看起来是像下面这样的:
POPULATION
LIFEEXPECTANCY
Mozambique
使用Pandas的DataFrame来处理每一行要比使用一个包含元组的元组方便。下面的Python代码片段将所有行转化为DataFrame实例:
; html-script: false ]&&& 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]);
; html-script: false ]&&& 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库。如果没有,你可以参考一下它的。
; html-script: false ]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')
12345678910111213141516
; html-script: false ]import plotly.plotly as pyfrom 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')
完整的代码在这份中。下面是作为嵌入的结果图:
利用Plotly的中的气泡图教程,我们可以用相同的MySQL数据绘制一幅气泡图,气泡大小表示人口的多少,气泡的颜色代表不同的大洲,鼠标悬停会显示国家名称。下面显示的是作为嵌入的气泡图。
创建这个图表以及这个博客中的所有python代码都可以从这个中拷贝。
关于作者:
可能感兴趣的话题
关于 Python 频道
Python频道分享 Python 开发技术、相关的行业动态。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线

我要回帖

更多关于 微信公众号编辑这木用 的文章

 

随机推荐