【数据分析与可视化】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选项

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

相关文章
|
29天前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
334 0
|
2月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
143 0
|
3月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
58 1
|
12天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
54 8
|
3月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
69 10
|
3月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
62 16

热门文章

最新文章