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数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...
随机推荐
- Mac OS 10.12 - Gogland和在Windows中使用的不同!!
刚刚在Mac OS 10.12用Gogland写了一个小小的GO语言测试程序,经过一番尝试才算把Gogland配置好,写出这个测试程序!Gogland在Mac OS 10.12里和Windows里面确 ...
- POI2014 RAJ-Rally
Description 给定一个\(N\)个点\(M\)条边的\(DAG(N,M\leq10^6)\),边权为\(1\).删去一个点,使剩余图中的最长路径最短,求删去的点和最长路径长度. Soluti ...
- 【JS深入学习】——函数创建和重载
今天做一个关注/取消的功能,由于需要向后台发送请求,想通过控制用户点击发送的频次减少不必要的请求,即在一定时间内,用户点击多次但只发送一次数据,自然而然想到了使用[函数节流]. function th ...
- HTML+Javascript制作拼图小游戏详解(二)
上一篇我们说了网页的基本布局.接下来将为大家带来具体的实现方法. 拼图通表格来实现,做一个方形的表格,改变其大小使之如图所示. 试想一下如果我们将一张图片剪成6张分别放入对应位置,然后再把它打乱,这样 ...
- function参数
expr_without_variable { Z_LVAL($$.u.constant) = ; zend_do_pass_param(&$, ZEND_SEND_VAL, Z_LVAL($ ...
- 安装SQL Server 2016出错提示:需要安装oracle JRE7 更新 51(64位)或更高版本完美解决办法
错误提示原因:安装时检测出电脑没有安装JDK,而且是版本7(其他版本不行) 解决方法:先进下面这个网站安装JDK,安装好后配置环境变量,然后重新安装SQL Server 2016即可 http://w ...
- Lingo 做线性规划 - Marketing Applications
Reference: <An Introduction to Management Science Quantitative Approaches to Decision Making, Rev ...
- 常用chrome插件&&常用FireFox插件
第一部分:chrome插件 chrome中输入 chrome://chrome-urls/ 可以得到包括缓存在内的很多相关信息. 1.掘金chrome插件 点击下载 掘金是一个高质量的互联网技术 ...
- seek()方法的使用
seek()方法用于移动文件读取指针到指定位置. file.seek()方法标准格式是:file.seek(offset,whence) offset:开始的偏移量,也就是代表需要移动偏移的字节数 w ...
- 48位MAC转化为唯一的128位IPV6地址
根据EUI_64规范,一个MAC地址生成唯一的一个IPV6地址. ①.反转MAC的第七位为1. ②.在24bit后加入FFFE. ③.在最前面加上FE80::. 示例: