Fantastic-Matplotlib 第一回

Fantastic-Matplotlib

Datawhale 11月组队学习 1

关于matplotlib运用的两个痛点和对应的知识体系构建角度:
1.没有系统的梳理绘图接口,用时查询效率低(从图形、布局、文本、样式等维度系统梳理绘图方法)
2.没有深入了解绘图框架(从绘图API层级、接口等方面阐明matplotlib的设计理念)

Matplotlib初相识

1.1 认识matplotlib

matplotlib是一个Python 2D绘图库,用来绘制各种静态、动态、交互式的图表。
我们熟知的pandas和seaborn的绘图接口其实也是基于matplotlib的高级封装。

1.2 一个最简单的绘图例子

1.2.1 方法一

method 1:创建figure(画在windows或者jupyter窗体)以及axes(每个figure包含一个或多个axes,一个axes可以指定坐标系的子区域),用pyplot.subplots创建figure和axes后,用Axes.plot绘制最简易的折线图

安装指定版本3.3.3的matplotlib

#pip install matplotlib==3.3.3
import matplotlib
matplotlib.__version__

返回:

'3.3.3'
import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots() #创建一个包含一个axes的figure
ax.plot([1,2,3,4],[1,4,2,3]) #绘制图像

返回:

[<matplotlib.lines.Line2D at 0x2aa89ed06d8>]

上述代码没有显示图,显示的是[<matplotlib.lines.Line2D at 0x2aa89ed06d8>],解决方案有三种:
1.在代码块最后加一个分号;
2.在代码块最后加一句plt.show()
3.在绘图时将绘图对象显式赋值给一个变量,将line=plt.plot([1,2,3,4])

import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots() #创建一个包含一个axes的figure
ax.plot([1,2,3,4],[1,4,2,3]);#绘制图像

方法一

1.2.2 方法二

method 2:利用matplotlib.pyplot直接在当前的axes上绘制图像,如果未指定axes,matplotlib会自动创建一个

line=plt.plot([1,2,3,4],[1,4,2,3])

方法二

1.3 Figure的组成

一个完整的matplotlib图像通常会包括四个层级,这些层级也叫容器(container)。
在matplotlib的世界中,我们将通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果,一副完整的图像实际是各类子元素的集合。
Figure: 顶层级,用来容纳所有绘图元素
Axes: matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成
Axis: axes的下属层级,用来处理所有和坐标轴网格有关的元素
Tick: axis的下属层级,同来处理所有和刻度有关的元素

1.4 两种绘图接口

第一种:显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style)

x=np.linspace(0,2,100) #创建等差数列(样本数据开始点,样本数据结束点,样本数据量)
fig,ax=plt.subplots()
ax.plot(x,x,label='linear') #线性
ax.plot(x,x**2,label='quadratic') #二次方
ax.plot(x,x**3,label='cubic') #立方
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
plt.show()

法一
第二种: 依赖pyplot自动创建figure和axes,并绘图

x=np.linspace(0,2,100)
plt.plot(x,x,label='linear') #线性
plt.plot(x,x**2,label='quadratic') #二次方
plt.plot(x,x**3,label='cubic') #立方
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()

法二


  1. Fantastic-Matplotlib ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值