为图表添加超链接

Beginner

This tutorial is from open-source community. Access the source code

简介

Matplotlib 是一个 Python 数据可视化库,它能让用户在 Python 中创建各种各样的静态、动画和交互式可视化图表。在本实验中,你将学习如何使用 Matplotlib 为你的图表添加超链接。在本实验结束时,你将能够为 Matplotlib 中的散点图和图像添加超链接。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。

导入所需库

在开始之前,我们需要为本实验导入必要的库。我们将使用 matplotlib.pyplotnumpymatplotlib.cm

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm

创建带有超链接的散点图

在这一步中,我们将创建一个散点图,并为标记添加超链接。以下是创建散点图的代码:

fig = plt.figure()
s = plt.scatter([1, 2, 3], [4, 5, 6])

要添加超链接,我们需要使用散点图对象的 set_urls() 方法。此方法将 URL 列表作为其参数。以下是更新后的代码:

s.set_urls(['https://www.bbc.com/news', 'https://www.google.com/', None])

前两个标记将分别具有指向 https://www.bbc.com/newshttps://www.google.com/ 的超链接。第三个标记将没有超链接。最后,我们可以使用 fig.savefig() 将图表保存为 SVG 文件:

fig.savefig('scatter.svg')

创建带有超链接的图像

在这一步中,我们将创建一幅图像并为其添加一个超链接。以下是创建图像的代码:

fig = plt.figure()
delta = 0.025
x = y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

im = plt.imshow(Z, interpolation='bilinear', cmap=cm.gray,
                origin='lower', extent=[-3, 3, -3, 3])

要为图像添加超链接,我们需要使用图像对象的 set_url() 方法。此方法将一个 URL 作为其参数。以下是更新后的代码:

im.set_url('https://www.google.com/')

该图像将具有指向 https://www.google.com/ 的超链接。最后,我们可以使用 fig.savefig() 将图表保存为 SVG 文件:

fig.savefig('image.svg')

运行代码

在你的 Python 环境中运行代码。应该会生成两个 SVG 文件:scatter.svgimage.svg。打开这些文件,将鼠标悬停在散点图和图像中的标记上。你应该会看到一个带有超链接的工具提示。

总结

在本实验中,你学习了如何在 Matplotlib 中为散点图和图像添加超链接。你对散点图使用了 set_urls() 方法,对图像使用了 set_url() 方法。当你想为受众提供额外信息或资源时,为你的图表添加超链接会很有用。