01-Matplotlib 学习笔记

Matplotlib 是建立在 Numpy 数组基础上支持多平台数据可视化的 Python 库

导入 Matplotlib

简写形式:

import matplotlib as mpl
import matplotlib.pyplot as plt

在不同的环境下使用 Matplotlib
脚本

调用 plt.show() 显示图像

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))

# 启动事件循环并阻塞
plt.show()
IPython Shell

可通过 %matplotlib 魔法命令启动 Matplotlib 模式, 调用任何 plt 的函数时自动打开一个图形窗口, 追加调用 plt 函数时更新该窗口, 无需使用 plt.show()

In [1]: %matplotlib
Using matplotlib backend: Qt5Agg

In [2]: import matplotlib.pyplot as plt

In [3]: import numpy as np

In [4]: x = np.linspace(0, 10, 100)

In [5]: plt.plot(x, np.sin(x))
Out[5]: [<matplotlib.lines.Line2D at 0x7f7d98166b90>]

In [6]: plt.plot(x, np.cos(x))
Out[6]: [<matplotlib.lines.Line2D at 0x7f7d9817e210>]

如下图所示:

image-20210928160458418

IPython Notebook

与 IPython Shell 类似, 通过魔法命令开启 Matplotlib 模式, 有两种形式

  • %matplotlib notebook 在 Notebook 中启动交互式图形
  • %matplotlib inline 在 Notebook 中启动静态图形

两种绘图风格

Matplotlib 绘图涉及到两个核心对象 plt.Figureplt.Axes 分别表示窗口和坐标轴, 一个窗口可容纳多个坐标轴, 一个坐标轴对应一个绘制图像

MATLAB 风格

在这种风格下, 程序会记录"当前的"窗口和坐标轴

  1. 首次绘图时, 程序自动创建窗口以及属于这个窗口的坐标轴
  2. 下一次绘图时, 程序默认沿用这个窗口并在该窗口上新建坐标轴, 如果你手动新建了窗口, 程序将该窗口视为"当前的"窗口
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

# 创建窗口
plt.figure("MATLAB Style")

# 创建两个子窗口中的第一个
plt.subplot(2, 1, 1)  # (行, 列, 子窗口编号)
plt.plot(x, np.sin(x))

# 创建两个子窗口中的第二个
plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))

plt.show()
面向对象风格

显示指定绘图所用的坐标轴

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

# 1. subplots 自动创建 plt.Figure 对象
# 2. axes 包含两个 plt.Axes 对象
fig, axes = plt.subplots(2, num="OOP Style")

# 在每个 plt.Axes 上调用 plot 方法
axes[0].plot(x, np.sin(x))
axes[1].plot(x, np.cos(x))

plt.show()

保存图像

两种风格对应两种调用方式:

  1. plt.savefig('xxx.png') 以 PNG 格式保存当前窗口

  2. fig.savefig('xxx.jpg') 以 JPG 格式保存指定的窗口(fig 为 plt.Figure 对象)

import os

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x))

# 新建窗口, 自动切换为"当前"窗口
plt.figure()
plt.plot(x, np.cos(x))

plt.savefig(os.path.expanduser("~/Pictures/01-savefig.png"))

将新建的窗口(仅包含余弦图形)保存到 ~/Pictures/01-savefig.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值