【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)

需要源码和PPT请点赞关注收藏后评论区留言私信~~~

一、数据可视化简介

对数据的分析离不开数据的可视化。传统的数据可视化起源于统计图形学,与信息图形、视觉设计等现代技术密切相关,其表现形式通常在二维空间。与之相比,大数据可视化往往更关注抽象高维的数据,空间属性较弱,与所针对的数据类型密切相关

(1)时空数据可视化

时空数据是指带有地理位置与时间标签的数据,因此,时变数据和地理信息数据的可视化非常重要

(2)层次与网络结构数据可视化

网络关联关系在大数据中是一种常见的关系。网络之间的连接、层次结构、拓扑结构等都属于这种类型。层次与网络结构数据通常使用点线图来可视化,如何在空间中合理有效地布局节点和连线时可视化的关键

(3)文本和跨媒体数据可视化

文本信息是大数据时代非结构化数据类型的典型代表,是互联网中最主要的信息类型。这类数据的可视化方法主要有标签云、引入时间轴的河流图等方法

(4)多变量数据可视化

多变量的高维数据用来描述现实世界中的复杂问题和对象。如何将高维数据呈现在平面上,也是可视化的重要挑战,通常人们将高维数据降维到低纬度空间,采用相关联的多视图来表现不同维度

二、Matplotlib简介 

Matplotlib 是一个在 python 下实现的类 matlab 的纯 python 的第三方库,旨在用 python实现 matlab 的功能,是python下最出色的绘图库。其风格跟 matlab 相似,同时也继承了 python 的简单明了

要使用matplotlib得先安装 numpy 库 (一个python下数组处理的第三方库,可以很方便的处理矩阵,数组)

 matplotlib 对于图像美化方面比较完善,可以自定义线条的颜色和样式,可以在一张绘图纸上绘制多张小图,也可以在一张图上绘制多条线, 可以很方便地将数据可视化并对比分析

Matplotlib模块依赖于NumPy和tkinter模块,可以绘制多种形式的图形,包括线图、直方图、饼图、散点图等,图形质量满足出版要求,是数据可视化的重要工具

Matplotlib中应用最广的是matplotlib.pyplot模块。Pyplot提供了一套和Matlab类似的绘图API,使得Matplotlib的机制更像Matlab。我们只需要调用Pyplot模块所提供的函数就可以实现快速绘图并设置图表的各个细节

在Jupyter notebook中进行交互式绘图,需要执行一下语句:   % matplotlib notebook

使用matplotlib时,使用的导入惯例为:   import matplotlib.pyplot as plt

下图显示Matplotlib中常用的绘图分组以及对应的图形

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第1张图片

 三、Matplotlib绘图基础

matplotlib中常用函数如下

figure():创建一个新的绘图窗口。  

 figtext():为figure添加文字    

axes():为当前figure添加一个坐标轴    

plot():绘图函数    

polar():绘制极坐标图    

axis():获取或设置轴属性的边界方法(坐标的取值范围)    

clf   : 清除当前figure窗口          

cla  : 清除当前axes窗口  

 close      : 关闭当前figure窗口  

 subplot    : 一个图中包含多个axes    

text(): 在轴上添加文字    

title(): 设置当前axes标题  

xlabel/ylabel:设置当前X轴或Y轴的标签

hist():绘制直方图    

hist2d():绘制二维在直方图    

hold      :设置当前图窗状态;

off或者on  

imread():读取一个图像,从图形文件中提取数组  

legend():为当前axes放置标签    

pie():绘制饼状图  

scatter():做一个X和Y的散点图,其中X和Y是相同长度的序列对象  

stackplot():绘制一个堆叠面积图  

acorr():绘制X的自相关函数  

annotate():用箭头在指定的数据点创建一个注释或一段文本    

bar():绘制垂直条形图        

barh():绘制横向条形图  

 barbs():绘制一个倒钩的二维场

1.创建画布与创建子图

matplotlib所绘制的图形位于图片Figure对象中 绘图常用方法如下图

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第2张图片

第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制

创建子图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib
%matplotlib inline
fig = plt.figure()
#不能使用空白的figure绘图,需要创建子图
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3) 

 【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第3张图片

子图绘制 

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第4张图片

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax1.plot([1.5,2,3.5,-1,1.6]) 

 创建子图序列

可以用语句Fig , axes = plt.subplots(2,3) 创建一个新的图片,然后返回包含了已生成子图对象的NumPy数组。数组axes可以像二维数组那样方便地进行索引,如axes[0,1]。也可以通过sharex和sharey表明子图分别拥有相同的x轴和y轴。 fig , axes = plt.subplots(2,3)

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第5张图片

调整子图周围的间距

 【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第6张图片

fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
for i in range(2):
     for j in range(2):
            axes[i,j].hist(np.random.randn(500),bins =50,color='k',alpha= 0.5)
plt.subplots_adjust(wspace=0,hspace=0)

 2.添加画布内容

在画布上绘制图形 需要设置绘图的一些属性,如标题 标签周等等 函数如下图所示

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第7张图片

第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后 

绘图时设置坐标轴属性

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第8张图片

data = np.arange(0,1,0.01)
plt.title('my lines example')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(0,1)
plt.ylim(0,1)
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.tick_params(labelsize = 12)
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(['y = x^2','y = x^3'])
plt.show()

 包含子图绘制的基础语法

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第9张图片

data = np.arange(0,np.pi*2,0.01)
fig1 = plt.figure(figsize = (8,4),dpi = 90)  #确定画布大小
ax1 = fig1.add_subplot(1,2,1) #绘制第1幅子图
plt.title('lines example')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(0,1)
plt.ylim(0,1)
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(['y = x^2','y = x^3'])
ax1 = fig1.add_subplot(1,2,2) #绘制第2幅子图
plt.title('sin/cos')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(0,np.pi*2)
plt.ylim(-1,1)
plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(data,np.sin(data))
plt.plot(data,np.cos(data))
plt.legend(['sin','cos'])
plt.show()

 Matplotlib 的 Legend 图例就是为了帮助我们展示每个数据对应的图像名称,更好的让读者认识到你的数据结构。关于plt.legend()的说明如下:

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第10张图片

常用设置示例: plt.legend(loc = 'best',frameon = False) #去掉图例边框,推荐使用 plt.legend(loc = 'best',edgecolor = 'blue') #设置图例边框颜色 plt.legend(loc = 'best',facecolor = 'blue') #设置图例背景颜色,若无边框,参数无效 

3.绘图的保存与显示 

绘图完成后 需要显示或者保存 图形显示和保存的函数如下图

【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第11张图片

第三部分主要用于保存和显示图形

figure.savefig选项

 【数据分析与可视化】Matplotlib绘图基础语法讲解(图文解释 超详细)_第12张图片

创作不易 觉得有帮助请点赞关注收藏~~~ 

你可能感兴趣的:(数据分析与可视化,python,数据分析,信息可视化,python,matplotlib,数据挖掘)