常用的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可视化基础的更多相关文章

  1. Python数据可视化基础讲解

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...

  2. Python可视化学习(1):Matplotlib的配置

    Matplotlib是一个优秀的可视化库,它提供了丰富的接口,让Python的可视化落地显得非常容易上手.本系列是本人学习python可视化的学习笔记,主要用于监督自己的学习进度,同时也希望和相关的博 ...

  3. Pycon 2017: Python可视化库大全

    本文首发于微信公众号“Python数据之道” 前言 本文主要摘录自 pycon 2017大会的一个演讲,同时结合自己的一些理解. pycon 2017的相关演讲主题是“The Python Visua ...

  4. 高效使用 Python 可视化工具 Matplotlib

    Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要介绍了在学习Matplotlib时面临的一些挑战,为什么要使用Matplo ...

  5. Python可视化库-Matplotlib使用总结

    在做完数据分析后,有时候需要将分析结果一目了然地展示出来,此时便离不开Python可视化工具,Matplotlib是Python中的一个2D绘图工具,是另外一个绘图工具seaborn的基础包 先总结下 ...

  6. Python 可视化工具 Matplotlib

    英文出处:Chris Moffitt. Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表.本文主要介绍了在学习Matplotlib时 ...

  7. Python数据分析基础PDF

    Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...

  8. 二叉树的python可视化和常用操作代码

    二叉树是一个重要的数据结构, 本文基于"二叉查找树"的python可视化 pybst 包, 做了一些改造, 可以支持更一般的"二叉树"可视化. 关于二叉树和二叉 ...

  9. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

随机推荐

  1. 认识与学习shell

    linux的终端机执行命令的方式,是通过bash环境来处理的.bash包括变量的设置与使用,.bash操作环境的构建.数据流重定向的功能.下面的知识,对主机的维护与管理有重要的帮助. 管理整个计算机硬 ...

  2. 日常一些出现bug的问题

    1.Fatal signal 4 (SIGILL), code 1, fault addr 0xca31569e in tid 8033 (r.myapplication) fault addr : ...

  3. series dataframe 的 idxmax()

    返回最大值的索引

  4. Comparable接口——容器中自定义类排序

    1.容器TreeMap,默认根据Key对象中某个属性的从小到大排列元素. (1)如下代码示例,Key是整型数字,所以按照其从小到大的顺序排列 public class TestTreeMap { pu ...

  5. Java并发工具类之并发数控制神器Semaphore

    Semaphore(信号量)使用来控制通知访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源. 我们可以这么理解Semaphore,比如一个厕所只有6个坑,同时只能满足6个人上厕所( ...

  6. snmpv3-snmpd.conf解析

    1.先指定createUser语句,设置密码和传输密钥. createUser user1 createUser user2 MD5 user2password createUser user3 MD ...

  7. pythonweb框架Flask学习笔记02-一个简单的小程序

    #-*- coding:utf-8 -*- #导入了Flask类 这个类的实例将会是我们的WSGI应用程序 from flask import Flask #创建一个Flask类的实例 第一个参数是应 ...

  8. 【xsy1143】 兔子的数字 搜索

    题目大意:请找到第$k$大的数,满足各位数字之和等于各位数字之积.其中$k≤10^{18}$. 首先我们要确定这个第$k$大的数有多大 我们用$f[i][j][he][ji]$表示我们要搜索一个$i$ ...

  9. commons-pool2

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7375611.html 1.前言 本章介绍一下常用基础Jar包commons-pools2,最近使用到了thrif ...

  10. Qt: QTimer和QThread

    让QTimer 跑在其他线程. 一般写法如下. 1. 在main thread中为worker thread指定定时器. QThread* thread = new QThread(this); th ...