利用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语言编写电脑时间自动同步小工具
Mar 08 Python
python二叉树遍历的实现方法
Nov 21 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
Python脚本实时处理log文件的方法
Nov 21 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
pycharm+django创建一个搜索网页实例代码
Jan 24 Python
解决python3 json数据包含中文的读写问题
May 10 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Python修改列表值问题解决方案
Mar 06 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
python tkinter实现定时关机
Apr 21 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中关于socket的系列函数总结
2015/05/18 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
一个简单的javascript类定义例子
2009/09/12 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
layer.prompt输入层的例子
2019/09/24 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
Django中使用Celery的方法示例
2018/11/29 Python
详解Python:面向对象编程
2019/04/10 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
python实现梯度下降法
2020/03/24 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
材料加工工程求职信
2014/02/19 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
风之谷观后感
2015/06/11 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python