python可视化基础
常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装。入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节。其实学习一门新知识,首先要掌握的是这门知识的最少最核心知识,剩下的就让它在实践中拓展吧。
视图分类
可视化视图的分类常常从两个维度:变量个数和变量之间的关系。按变量个数分可分为单变量分析和多变量分析。变量之间的关系常有下面四种:
- 比较关系,如:折线图。
- 联系,如:散点图。
- 构图,如:饼图。
- 分布,如:直方图。
知道了这些,还不够!你好要掌握如下几种常见的视图画法。

工欲善其事,必先利其器!开始画图之前你需要注意这几个问题:
- 引入合适的包
import matplotlib.pyplot as plt
import seaborn as sns
- 处理中文乱码和负号问题
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
Plus1:上面的中文设置在MAC平台的Spyder上无效,需要替换成如下的设置:
plt.rcParams['font.family'] = ['Arial Unicode MS'] #用来正常显示中文标签
Plus2:你可以把下面的这几条语句当成作图过程中的固定代码块:
import matplotlib.pyplot as plt # 导入作图库
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.figure(figsize = (7, 5)) # 创建图像区域,指定比例
好了现在开始我们的绘图之旅吧!
散点图(scatter plot)
散点图可以用来显示两个变量的关系,其核心示例代码如下:
plt.scatter(x,y,marker='X')
plt.show()
对应的生成图如下:

折线图
折线图一般用来描述数据随时间变化的趋势,其核心代码示例如下:
x =[i+1 for i in range(2009,2019)]
y =[5,3,6,20,17,16,19,30,32,35]
plt.plot(x,y)
plt.show()
其生成图如下所示:

折线图豪华升级版本代码如下:
import numpy as np
import matplotlib.pyplot as plt
x =np.linspace(0,10,1000)
y=np.sin(x)+1
z=np.cos(x**2)+1
plt.figure(figsize=(8,4))
plt.plot(x,y,label='$\sin x+1$',color='red',linewidth=2)
plt.plot(x,z,'b--',label='$\cos x^2+1$')
plt.xlabel('Time(s) ')
plt.ylabel('Volt')
plt.title('A Simple Example')
plt.ylim(0,2.2)
plt.legend()
plt.show()

直方图
直方图又称质量分布图,能比较直观的体现出不同阶段,数量(质量)的分布状态,其核心示例代码如下:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
a =np.random.randn(100)
b = pd.Series(a)
plt.hist(b)
plt.show()
其生成图如下所示:

条形图
条形图和直方图很像,如果说通过直方图可以了解到变量的数值分布,那么条形图可以帮我们查看变量的类别特征。其核心示例代码如下:
x =['cat1','cat2','cat3','cat4','cat5']
y =[5,4,8,12,7]
plt.bar(x,y)
plt.show()
其生成图如下:

箱线图
箱线图又称盒式图,由五个数值点构成:max(最大值)、min(最小值)、median(中位数)、Q3(上四分位数)和Q1(下四分位数)组成,比较直观的图示如下:

下面我们来模拟箱线图的生成,其核心示例代码如下:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
data = np.random.normal(size=(10,4))
lables =["A","B","C","D"]
plt.boxplot(data,labels=lables)
plt.show()
生成图如下所示:

饼图
饼图常用来描述部分和整体之间的比例,其核心示例代码如下
nums =[24,37,19,9]
lables =["A","B","C","D"]
plt.pie(x=nums,labels=lables)
plt.show()
其生成图示例如下:

其豪华升级版本如下:
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs'
sizes =[15,30,45,10]
colors=['yellowgreen','gold','lightskyblue','lightcoral']
explode=(0,0.1,0,0)
plt.pie(sizes,explode =explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)
plt.axis('equal')
plt.show()
其示例图如下所示:

热力图
热力图是一种直观的多远变量分析方法,是一种矩阵表示方法,其中矩阵的不同元素值用不同的颜色来表示。在模拟时,我们需要导入seaborn中自带的数据集fights。其核心示例代码如下:
import matplotlib.pyplot as plt
import seaborn as sns
# data prepare
flights = sns.load_dataset("flights")
data=flights.pivot('year','month','passengers')
sns.heatmap(data)
plt.show()
其图像示例如下:

未完待续…
python可视化基础的更多相关文章
- Python数据可视化基础讲解
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...
- Python可视化学习(1):Matplotlib的配置
Matplotlib是一个优秀的可视化库,它提供了丰富的接口,让Python的可视化落地显得非常容易上手.本系列是本人学习python可视化的学习笔记,主要用于监督自己的学习进度,同时也希望和相关的博 ...
- Pycon 2017: Python可视化库大全
本文首发于微信公众号“Python数据之道” 前言 本文主要摘录自 pycon 2017大会的一个演讲,同时结合自己的一些理解. pycon 2017的相关演讲主题是“The Python Visua ...
- 高效使用 Python 可视化工具 Matplotlib
Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要介绍了在学习Matplotlib时面临的一些挑战,为什么要使用Matplo ...
- Python可视化库-Matplotlib使用总结
在做完数据分析后,有时候需要将分析结果一目了然地展示出来,此时便离不开Python可视化工具,Matplotlib是Python中的一个2D绘图工具,是另外一个绘图工具seaborn的基础包 先总结下 ...
- Python 可视化工具 Matplotlib
英文出处:Chris Moffitt. Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要介绍了在学习Matplotlib时 ...
- Python数据分析基础PDF
Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...
- 二叉树的python可视化和常用操作代码
二叉树是一个重要的数据结构, 本文基于"二叉查找树"的python可视化 pybst 包, 做了一些改造, 可以支持更一般的"二叉树"可视化. 关于二叉树和二叉 ...
- (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md
第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...
随机推荐
- 如何用c#本地代码实现与Webbrowser中的JavaScript交互
关键词:.Net,Webbrowser,JavaScript,communication 参考: 链接:msdn实例-简单的相互调用 代码: [PermissionSet(SecurityAction ...
- koa和egg项目webpack热更新实现
背景 在用Node.js+Webpack构建的方式进行开发时, 我们希望能实现修改代码能实时刷新页面UI的效果. 这个特性webpack本身是支持的, 而且基于koa也有现成的koa-webpack- ...
- s11 day 102 python Linux环境安装 与路飞项目 微信平台接口
1.微信公众号平台沙箱环境地址 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 二.结算中心业务 结算中心: -购物车,删 ...
- Android - Android Studio 3.0去掉方法参数提示
升级到3.0之后,最明显的一个就是在调用方法的时候多了一个参数提示.有利有弊,看着不是很舒服.就想去掉. 提示样式如下: 去掉提示: 原文地址: https://blog.csdn.net/stude ...
- LOJ#3087. 「GXOI / GZOI2019」旅行者(最短路)
题面 传送门 题解 以所有的感兴趣的城市为起点,我们正着和反着各跑一边多源最短路.记\(c_{0/1,i}\)分别表示正图/反图中离\(i\)最近的起点,那么对于每条边\((u,v,w)\),如果\( ...
- Bootstrap框架(一)
day57 参考:https://www.cnblogs.com/liwenzhou/p/8214637.html 下载:http://www.bootcss.com/ 选择用于生产环境的 Boo ...
- 读懂Netty的高性能架构之道
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...
- Jvm内存工具
1,JConsole 位于 [JDK] bin 下, 2,代码查看当前进程堆内存 long maxMemory = Runtime.getRuntime().maxMemory();long tot ...
- easyui 中iframe嵌套页面,大弹窗自适应居中的解决方法。$('#win').window()
easyui 中iframe嵌套页面,大弹窗自适应居中的解决方法.$('#win').window() 以下是左边栏和头部外层遮罩显示和隐藏方法 /*外层 遮罩显示*/ function wrapMa ...
- 面试题:js如何渲染十万条数据并不卡住界面
这道题考察了如何在不卡住页面的情况下渲染数据,也就是说不能一次性将几万条都渲染出来,而应该一次渲染部分 DOM,那么就可以通过 requestAnimationFrame 来每 16 ms 刷新一次. ...