如何在 Google Colab 中使用 Matplotlib 绘制交互式图像
概述
Google Colab 是一个允许使用 Python 代码进行在线互动计算的平台,可以免费使用 Google 的 GPU 或 TPU 资源。而 Matplotlib 是一个用于创建静态、动态和交互式数据可视化的 Python 库。本文将介绍如何在 Google Colab 中使用 Matplotlib 绘制交互式图像。
阅读更多:Matplotlib 教程
安装与导入 Matplotlib
在 Google Colab 中,默认情况下还没有安装 Matplotlib 库。因此,我们需要先安装它。安装 Matplotlib 是相对简单的。只需要在代码单元格中使用 !pip install matplotlib
命令即可完成安装。然后我们需要导入 Matplotlib 库,通常会使用下面的别名:
import matplotlib.pyplot as plt
绘制基本的 Matplotlib 图像
在使用 Matplotlib 绘制图片之前,我们需要先了解三个最重要的概念:
- Figure:画布,用于设置绘制的图片大小、坐标系等参数。
- Axes:绘图区,一个画布可以有多个绘图区,每个绘图区可以绘制不同的数据图像。
- Artist:所有的数据图像都是由各种 Artists 组成的,包括但不限于 Line2D、Text、Axis、Axes、Figure 等。
有了以上初步的了解,我们现在可以通过 Matplotlib 来创建一些基本的图像了。
折线图
折线图是一种展示数据变化趋势的图像。继续创建一个代码单元格,输入如下代码:
import numpy as np
x = np.linspace(-5, 5, 101)
y = x ** 2
plt.plot(x, y)
plt.show()
输出结果应该是一个代表 y=x^2 的简单折线图。
散点图
散点图显示两个数值变量之间的关系。使用 scatter()
函数即可绘制散点图。我们可以使用 random()
函数和 randint()
函数来生成一些随机的数据用于绘制散点图。
x = np.random.random(100)
y = np.random.randint(0, 100, 100)
plt.scatter(x, y)
plt.show()
上述代码会绘制出一个随机的点分布图。
条形图
条形图是用它的长方形区域的长度表示比较量,条形图也是英文中最常见的表示数据的形式之一。对于绘制条形图,我们可以使用 bar()
函数。
height = [3, 12, 5, 18, 45]
bars = ('A', 'B', 'C', 'D', 'E')
y_pos = np.arange(len(bars))
plt.bar(y_pos, height, color=['black', 'red', 'green', 'blue', 'cyan'])
plt.xticks(y_pos, bars)
plt.show()
上述代码会绘制出所谓的经典“五分钱一根”的条形图。
在 Google Colab 中绘制交互式 Matplotlib 图像
Matplotlib 的核心库并不支持在 Google Colab 中绘制交互式图像。我们需要使用 %matplotlib inline
命令来将图像显示在单元格中,这意味着输出的图像为静态图像,无法进行交互。
要绘制交互式 Matplotlib 图像,我们需要使用 %matplotlib notebook
命令来导入 Notebook
模式。注意,Notebook
模式会创建一个新的交互式图像窗口,该窗口将首先出现在当前单元格中。如果您想在 Colab 代码编辑器外部显示图像窗口,则必须将鼠标指针悬停在图像上,然后单击并选择“Save”图标。这样,图像将保存为 HTML 文件,并在新窗口中打开。
%matplotlib notebook
接下来,我们可以使用 interact()
函数在单元格中创建交互式图像。首先,我们需要定义一个绘制函数,该函数将包含我们要绘制的图形和所有必要的参数。
from ipywidgets import interact, interactive, fixed, interact_manual
def plot_interactive_graph(scaling_factor):
x = np.arange(0, 10, 0.1)
y = np.sin(x) * scaling_factor
plt.plot(x, y)
plt.title('Scaling factor: {}'.format(scaling_factor))
plt.show()
interact(plot_interactive_graph, scaling_factor=(1, 5, 0.1))
上述代码将创建一个可以使用滑块调整参数进行交互的图表,滑块的范围为 1 到 5,步长为 0.1。
总结
Matplotlib 是一个可靠的 Python 库,可用于创建静态和动态的图像表示。在 Google Colab 中,我们可以使用 %matplotlib inline
命令来绘制静态图像,或使用 %matplotlib notebook
命令来创建交互式 Matplotlib 图像。通过使用 interact()
函数,我们可以将交互性引入您的图像,您可以调整绘图参数并轻松地进行快速分析。