利用Python进行数据可视化常见的9种方法!超实用!


Posted in Python onJuly 11, 2018

前言

如同艺术家们用绘画让人们更贴切的感知世界,数据可视化也能让人们更直观的传递数据所要表达的信息。

我们今天就分享一下如何用 Python 简单便捷的完成数据可视化。

其实利用 Python 可视化数据并不是很麻烦,因为 Python 中有两个专用于可视化的库 matplotlib 和 seaborn 能让我们很容易的完成任务。

  • Matplotlib:基于Python的绘图库,提供完全的 2D 支持和部分 3D 图像支持。在跨平台和互动式环境中生成高质量数据时,matplotlib 会很有帮助。也可以用作制作动画。
  • Seaborn:该 Python 库能够创建富含信息量和美观的统计图形。Seaborn 基于 matplotlib,具有多种特性,比如内置主题、调色板、可以可视化单变量数据、双变量数据,线性回归数据和数据矩阵以及统计型时序数据等,能让我们创建复杂的可视化图形。

我们用 Python 可以做出哪些可视化图形?

那么这里可能有人就要问了,我们为什么要做数据可视化?比如有下面这个图表:

利用Python进行数据可视化常见的9种方法!超实用!

当然如果你把这张图表丢给别人,他们倒是也能看懂,但无法很直观的理解其中的信息,而且这种形式的图表看上去也比较 low,这个时候我们如果换成直观又美观的可视化图形,不仅能突显逼格,也能让人更容易的看懂数据。

下面我们就用上面这个简单的数据集作为例子,展示用 Python 做出9种可视化效果,并附有相关代码。

导入数据集

import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel("E:/First.xlsx", "Sheet1")

可视化为直方图

fig=plt.figure() #Plots in matplotlib reside within a figure object, use plt.figure to create new figure
#Create one or more subplots using add_subplot, because you can't create blank figure
ax = fig.add_subplot(1,1,1)
#Variable
ax.hist(df['Age'],bins = 7) # Here you can play with number of bins
Labels and Tit
plt.title('Age distribution')
plt.xlabel('Age')
plt.ylabel('#Employee')
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为箱线图

import matplotlib.pyplot as plt
import pandas as pd
fig=plt.figure()
ax = fig.add_subplot(1,1,1)
#Variable
ax.boxplot(df['Age'])
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为小提琴图

import seaborn as sns 
sns.violinplot(df['Age'], df['Gender']) #Variable Plot
sns.despine()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为条形图

var = df.groupby('Gender').Sales.sum() #grouped sum of sales at Gender level
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax1.set_xlabel('Gender')
ax1.set_ylabel('Sum of Sales')
ax1.set_title("Gender wise Sum of Sales")
var.plot(kind='bar')

利用Python进行数据可视化常见的9种方法!超实用!

可视化为折线图

var = df.groupby('BMI').Sales.sum()
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax1.set_xlabel('BMI')
ax1.set_ylabel('Sum of Sales')
ax1.set_title("BMI wise Sum of Sales")
var.plot(kind='line')

利用Python进行数据可视化常见的9种方法!超实用!

可视化为堆叠柱状图

var = df.groupby(['BMI','Gender']).Sales.sum()
var.unstack().plot(kind='bar',stacked=True, color=['red','blue'], grid=False)

利用Python进行数据可视化常见的9种方法!超实用!

可视化为散点图

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(df['Age'],df['Sales']) #You can also add more variables here to represent color and size.
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为泡泡图

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(df['Age'],df['Sales'], s=df['Income']) # Added third variable income as size of the bubble
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为饼状图

var=df.groupby(['Gender']).sum().stack()
temp=var.unstack()
type(temp)
x_list = temp['Sales']
label_list = temp.index
pyplot.axis("equal") #The pie chart is oval by default. To make it a circle use pyplot.axis("equal")
#To show the percentage of each pie slice, pass an output format to the autopctparameter 
plt.pie(x_list,labels=label_list,autopct="%1.1f%%") 
plt.title("Pastafarianism expenses")
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

可视化为热度图

import numpy as np
#Generate a random number, you can refer your data values also
data = np.random.rand(4,2)
rows = list('1234') #rows categories
columns = list('MF') #column categories
fig,ax=plt.subplots()
#Advance color controls
ax.pcolor(data,cmap=plt.cm.Reds,edgecolors='k')
ax.set_xticks(np.arange(0,2)+0.5)
ax.set_yticks(np.arange(0,4)+0.5)
# Here we position the tick labels for x and y axis
ax.xaxis.tick_bottom()
ax.yaxis.tick_left()
#Values against each labels
ax.set_xticklabels(columns,minor=False,fontsize=20)
ax.set_yticklabels(rows,minor=False,fontsize=20)
plt.show()

利用Python进行数据可视化常见的9种方法!超实用!

你也可以自己试着根据两个变量比如性别(X 轴)和 BMI(Y 轴)绘出热度图。

结语

本文我们分享了如何利用 Python 及 matplotlib 和 seaborn 库制作出多种多样的可视化图形。通过上面的例子,我们应该可以感受到利用可视化能多么美丽的展示数据。而且和其它语言相比,使用 Python 进行可视化更容易简便一些。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

参考资料:

https://www.analyticsvidhya.com/blog/2015/05/data-visualization-python/

Python 相关文章推荐
Python+django实现文件上传
Jan 17 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
利用Python获取操作系统信息实例
Sep 02 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
python字典按照value排序方法
Dec 28 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
python中urllib包的网络请求教程
Apr 19 Python
基于数据归一化以及Python实现方式
Jul 11 #Python
numpy.std() 计算矩阵标准差的方法
Jul 11 #Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 #Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 #Python
Python实现识别图片内容的方法分析
Jul 11 #Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 #Python
python对离散变量的one-hot编码方法
Jul 11 #Python
You might like
让PHP支持断点续传的源码
2010/05/16 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP7新功能总结
2019/04/14 PHP
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
JS中数组重排序方法
2016/11/11 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python3 批量扫描端口的例子
2019/07/25 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python matplotlib拟合直线的实现
2019/11/19 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
社区党支部承诺书
2015/04/29 职场文书
付款证明模板
2015/06/19 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技