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数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...
随机推荐
- CentOS 7 - 安装Windows字体!
1,安装cabextract: 下载地址:http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/cabe ...
- 设置jade高亮
来自:https://segmentfault.com/a/1190000002896247 打开sublime3,再打开 view > show console,把下列代码复制到console ...
- OpenCV2计算机编程手册(二)基于类的图像处理
1. 在算法设计中使用策略(Strategy)模式 策略设计模式的目标是将算法封装在类中.因此,可以更容易地替换一个现有的算法,或者组合使用多个算法以拥有更复杂的处理逻辑.此外,该模式将算法的复杂度隐 ...
- 解决axios请求本地的json文件在打包后路径出错问题
vue 项目中使用axios请求了本地项目的static文件夹下的json文件,使用npm run build 打包后,在Hbuilder编辑器打开,页面报错404: 在浏览器打开的路径 http:/ ...
- 【bzoj4240】 有趣的家庭菜园 树状数组
这一题最终要构造的序列显然是一个单峰序列 首先有一个结论:一个序列通过交换相邻的元素,进行排序,最少的交换次数为该序列的逆序对个数 (该结论很久之前打表意外发现的,没想到用上了.....) 考虑如何构 ...
- 【xsy1147】 异或(xor) 可持久化trie
我的脑回路可能比较奇怪. 我们对这些询问离线,将所得序列${a}$的后缀和建$n$棵可持久化$trie$. 对于一组询问$(l,r,x)$,我们在主席树上询问第$l$棵树$-$第r$+1$棵树中与$s ...
- 直接插入排序实现(Java)
直接插入排序介绍 直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的.记录数增1的有序表. 怎么理解呢?就是将n个待排序的元素看成一个有序表和一个无序表,开始时有序 ...
- Install MySql on CentOS
Installing & Configuring MySQL Server This Howto will show you how to install MySQL 5.x, start t ...
- 3、Xamarin Forms 调整安卓TabbedPage 下置
降低学习成本是每个.NET传教士义务与责任. 建立生态,保护生态,见者有份. 教程晦涩难懂是我的错误. 对于默认的TabbedPage 上面进行页面切换 上面是安卓默认的情况 对我们大部分人来说都 ...
- 为Linux集群创建新账户,并配置hadoop集群
转自:http://blog.csdn.net/bluesky8640/article/details/6945776 之前装python.jdk.hadoop都是用的root账户,这是一个绝对的失策 ...