matplotlib 显示批量图片_数据可视化工具 Matplotlib(上)

202731186bc33451272d1996d79081fd.png

Matplotlib 是数据科学领域非常有用的可视化工具,几乎可以绘制我们想要的任何图像,数据的可视化非常重要,它能够让我们更加清楚的看到数据中的趋势和特性。本文中的代码均在 Jupyter Notebook 中运行,并且介绍的内容是 Matplotlib 中最常用的方法和技巧,更加详细的内容读者可以自行查看官方文档。主要内容如下:

  • 一、notebook 和 inline
    • 1.1 Backends
    • 1.2 交互式
    • 1.3 嵌入式
  • 二、Figure
    • 2.1 理解画布和子图
    • 2.2 尺寸修改
  • 三、Axes
    • 3.1 参数的设置
    • 3.2 风格更改
    • 3.3 多子图操作
    • 3.4 箭头绘制
    • 3.5 图例、布局和轴范围
  • 四、3D绘图

一、notebook 和 inline

在掌握 Matplotlib 之前我们首先需要熟悉下面的图片,内容展示的是使用 Matplotlib 绘制出的图像中各个部分的定义。

1a84c80caeb4c7086e43cbb76692b836.png
(图片来自官方手册)

当我们在 Jupyter Notebook 中使用 Matplotlib 进行可视化的话会有两种常用的选择,交互式和嵌入式,两种方式的不同是因为设置了不同的 Backends 导致的。

1.1 Backends

在 Matplotlib 有很多 backends ,backends 主要负责显示图形, 它跟环境与硬件有关, 可以适用各种环境,如交互式绘图、 图形的保存等等。

1.2 使用交互式的绘图方式

如果使用交互式的绘图,需使用 magic 方法添加 %matplotlib notebook ,如下:

import 

我们可以打印出当前的 backends,来确认是否设置成功:

print(matplotlib.get_backend())

需要注意的是,如果我们定义了 import matplotlib.pyplot as plt ,那么 %matplotlib notebook 必须放在 import matplotlib.pyplot as plt 的前面,如下:

import matplotlib
import numpy as np
%matplotlib notebook
import matplotlib.pyplot as plt

定义好 backends 之后,就可以看下交互式绘图的效果,运行下面的代码:

x = np.linspace(1,10,1000)
y = np.sin(x)
plt.plot(x,y)
plt.show()

得到如下的图像:

54b6251a251c8b6427fd0a82de2570cd.png

这就是一张交互式的图像,可以看到这个图像有非常多的交互按钮,不仅如此通过鼠标我们还能实现图像大小的拖拽缩放、点坐标的定位等等。

1.3 使用嵌入式的绘图方式

如果是嵌入式的绘图,需要使用 magic 方法添加 %matplotlib inline ,代码如下:

import numpy as np 
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline

我们运行之前同样的代码:

x = np.linspace(1,10,1000)
y = np.sin(x)
plt.plot(x,y)
plt.show()

得到如下图像:

49afdf2cff15e24e886dd11c183487d0.png

这个图像是完全静态的,不能做任何的修改。

二、Figure

figure 是 Matplotlib 中的重要概念,之前我们使用的绘图方式只能够绘制一张图像,如果我们想一次展示多个图像,那么就需要用到 figure 和它内部的子图。

2.1 理解画布和子图

figure 我们可以理解为一张画布,我们可以往这个画布中添加指定数量的子图,每一个子图可以根据数据绘制单独的一张图像。figure 和 子图生成代码如下:

fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
plt.show()

得到下图:

83c5e44a441e3c73f378315a74c3a17e.png

fig.add_subplot(121) 中的参数 121 表示的是在 1x2 的网格中的第一张图像。

这个画布我们还能够对其设置指定的颜色,画布默认的颜色为白色,代码如下:

fig = plt.figure(facecolor="y")
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
plt.show()

得到下图:

89a78596d19be1532f01630415868153.png

子图还是使用的默认色,为了更加明显,代码改成如下形式:

fig = plt.figure(figsize=plt.figaspect(0.6), facecolor="y")
ax1 = fig.add_subplot(121, facecolor="b")
ax1 = fig.add_subplot(122, facecolor="r")
plt.show()

得到下图:

f41616e155bd7d2e558da1e0c337298d.png

这时我们就能够清晰的分辨出子图和画布了。

2.2 尺寸修改

figure 中最常被修改参数还是它的尺寸,而最常用的尺寸修改方法如下。

首先是按宽高比例进行修改,代码如下:

fig = plt.figure(figsize=plt.figaspect(0.5), facecolor="y")
ax = fig.add_subplot(111)
plt.show()

得到下图:

eecdb7ba7b512060a69d0b76b70dfa96.png

其次是按固定的尺寸大小进行修改,代码如下:

fig = plt.figure(figsize=(12,4), facecolor="y")
ax = fig.add_subplot(111)
plt.show()

得到下图:

c714a55a19120c1afdb5fd79db93b39d.png

唐进民:数据可视化工具 Matplotlib(下)​zhuanlan.zhihu.com
b69555c00a6c4ca480f6cff0015aa4ad.png


微信公众号:PyMachine

0e40e24b3a1c42897bb55e047fb55eb3.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值