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

简介: 【数据分析与可视化】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绘图基础

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对象中 绘图常用方法如下图

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

创建子图

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)

子图绘制

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)

调整子图周围的间距

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.添加画布内容

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

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

绘图时设置坐标轴属性

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()

包含子图绘制的基础语法

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()的说明如下:

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

3.绘图的保存与显示

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

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

figure.savefig选项

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

相关文章
|
8天前
|
数据可视化 前端开发 数据挖掘
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享(上)
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享
|
3天前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
|
3天前
|
数据可视化 数据挖掘 Python
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
【5月更文挑战第20天】本文介绍了使用Python的pandas、matplotlib和seaborn库进行数据可视化的步骤,包括创建示例数据集、绘制折线图、柱状图、散点图、热力图、箱线图、小提琴图和饼图。这些图表有助于直观理解数据分布、关系和趋势,适用于数据分析中的探索性研究。
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
|
8天前
|
数据采集 数据可视化 数据挖掘
如何利用Python中的Pandas库进行数据分析和可视化
Python的Pandas库是一种功能强大的工具,可以用于数据分析和处理。本文将介绍如何使用Pandas库进行数据分析和可视化,包括数据导入、清洗、转换以及基本的统计分析和图表绘制。通过学习本文,读者将能够掌握利用Python中的Pandas库进行高效数据处理和可视化的技能。
|
8天前
|
机器学习/深度学习 数据采集 数据可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
|
8天前
|
前端开发 数据可视化 数据挖掘
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享(下)
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享
|
8天前
|
数据可视化 前端开发 数据挖掘
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
|
8天前
|
机器学习/深度学习 前端开发 数据可视化
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
|
8天前
|
数据可视化 数据挖掘 数据处理
Python数据可视化库Matplotlib介绍与实践
本文深入介绍了Python中常用的数据可视化库Matplotlib,包括其基本概念、核心功能和实际运用。通过详细的示例和解释,帮助读者更好地理解Matplotlib的用法和优势,为数据分析和可视化提供技术支持。
|
8天前
|
数据可视化 BI 索引
【Python】—— matplotlib数据可视化
【Python】—— matplotlib数据可视化