matplotlib绘图原理

matplotlib绘图原理

背景:

平时画图基本上使用的是python,而在之前都是需要什么图然后就在网上找相应的代码,虽然也能绘制,但是,没有从本质上知道python是如何实现的,这对于后面的进阶不利。因此,下面着手从matplotlib绘图本质入手,学习绘图

注:转载请标明出处,谢谢!

1.首先理解画布,坐标系,坐标轴三个概念

画图首先需要创建一个画布,供用户进行可视,figure起到的作用就是如此。接着,有了画布,我们需要在上面作图,但是如果需要在这个画布上面画不同的要素图,这可以理解为需要在这张画布上面在不同坐标系下绘制图像,这就引出了坐标系axes;接着,有了坐标系的概念,也就有了坐标轴的概念axis

总结:一个画布(figure)上可以绘制多个坐标系下的图像,而每个坐标系下都有坐标轴(坐标轴可以是二维,三维等)

注意:matplotlib中,画布与坐标系不能显示的可见,用户能够看到的仅仅是一个个坐标轴下的图形。

1.1画布:

画板上准备一张画布

1.2坐标系

简单的理解成一般的二维平面坐标系,三维坐标系

1.3坐标轴

常规的x,y,z坐标轴

下图形象展示了这三个要素

1

import matplotlib.pyplot as plt


# 隐式创建画布,坐标轴
plt.plot((1, 2, 3), (2, 4, 6))
plt.show()

2

import matplotlib.pyplot as plt


# 显示创建画布,坐标轴
fig, ax = plt.subplots()
ax.plot((1, 2, 3), (2, 4, 6))
plt.show()

3

# 创建多个坐标系
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 3)
(ax1, ax2, ax3) = ax
ax1.plot((1, 2, 3), (2, 4, 6))
ax2.plot((1, 2, 3), (2, 4, 6))
ax3.plot((1, 2, 3), (2, 4, 6))

plt.show()

4

我们需要知道的是,在matplotlib中画图前需要构建画布与坐标系。

创建画布的方式有两种:

  • 隐式创建

  • 显式创建

显式创建可以从python面向对象的角度理解(即创建了一个画布、坐标系实例)

注意:plt会默认的在最新的坐标轴上绘制图像

# 创建多个坐标系
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 3)
(ax1, ax2, ax3) = ax

# 如果要在第二个坐标系下画图使用plt的话,会出现下列问题
plt.plot((1, 2, 3), (2, 4, 6))

plt.show()

5

可以发现,它直接在最后一个(最新的)坐标轴进行绘图,而非在第二个坐标系。因此,需要使用ax2.plot((1, 2, 3), (2, 4, 6))

# 创建多个坐标系
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 3)
(ax1, ax2, ax3) = ax

# 如果要在第二个坐标系下画图使用plt的话,会出现下列问题
ax2.plot((1, 2, 3), (2, 4, 6))

plt.show()

6

参考资料:

matplotlib绘图的核心原理讲解(超详细)_http://suo.im/678fco_数据分析与统计学之美的博客-CSDN博客

人人都能看懂的Matplotlib绘图原理 - 知乎 (zhihu.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值