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数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...
随机推荐
- 认识与学习shell
linux的终端机执行命令的方式,是通过bash环境来处理的.bash包括变量的设置与使用,.bash操作环境的构建.数据流重定向的功能.下面的知识,对主机的维护与管理有重要的帮助. 管理整个计算机硬 ...
- 日常一些出现bug的问题
1.Fatal signal 4 (SIGILL), code 1, fault addr 0xca31569e in tid 8033 (r.myapplication) fault addr : ...
- series dataframe 的 idxmax()
返回最大值的索引
- Comparable接口——容器中自定义类排序
1.容器TreeMap,默认根据Key对象中某个属性的从小到大排列元素. (1)如下代码示例,Key是整型数字,所以按照其从小到大的顺序排列 public class TestTreeMap { pu ...
- Java并发工具类之并发数控制神器Semaphore
Semaphore(信号量)使用来控制通知访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源. 我们可以这么理解Semaphore,比如一个厕所只有6个坑,同时只能满足6个人上厕所( ...
- snmpv3-snmpd.conf解析
1.先指定createUser语句,设置密码和传输密钥. createUser user1 createUser user2 MD5 user2password createUser user3 MD ...
- pythonweb框架Flask学习笔记02-一个简单的小程序
#-*- coding:utf-8 -*- #导入了Flask类 这个类的实例将会是我们的WSGI应用程序 from flask import Flask #创建一个Flask类的实例 第一个参数是应 ...
- 【xsy1143】 兔子的数字 搜索
题目大意:请找到第$k$大的数,满足各位数字之和等于各位数字之积.其中$k≤10^{18}$. 首先我们要确定这个第$k$大的数有多大 我们用$f[i][j][he][ji]$表示我们要搜索一个$i$ ...
- commons-pool2
转载请注明源出处:http://www.cnblogs.com/lighten/p/7375611.html 1.前言 本章介绍一下常用基础Jar包commons-pools2,最近使用到了thrif ...
- Qt: QTimer和QThread
让QTimer 跑在其他线程. 一般写法如下. 1. 在main thread中为worker thread指定定时器. QThread* thread = new QThread(this); th ...