简介
Matplotlib 是一个 Python 数据可视化库,它能让用户在 Python 中创建各种各样的静态、动画和交互式可视化图表。在本实验中,你将学习如何使用 Matplotlib 为你的图表添加超链接。在本实验结束时,你将能够为 Matplotlib 中的散点图和图像添加超链接。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。
导入所需库
在开始之前,我们需要为本实验导入必要的库。我们将使用 matplotlib.pyplot、numpy 和 matplotlib.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/news 和 https://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.svg 和 image.svg。打开这些文件,将鼠标悬停在散点图和图像中的标记上。你应该会看到一个带有超链接的工具提示。
总结
在本实验中,你学习了如何在 Matplotlib 中为散点图和图像添加超链接。你对散点图使用了 set_urls() 方法,对图像使用了 set_url() 方法。当你想为受众提供额外信息或资源时,为你的图表添加超链接会很有用。