简介
Matplotlib 是一个数据可视化库,提供了各种用于创建二维和三维图表的工具。它基于 NumPy 库构建,其主要目的是以简单有效的方式可视化数据。在本教程中,我们将学习如何使用来自 XKCD 网络漫画的 xkcd 风格创建两种不同类型的图表。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
导入库
第一步是导入必要的库。我们将使用 matplotlib.pyplot 和 numpy 库。
import matplotlib.pyplot as plt
import numpy as np
创建一个 XKCD 风格的图表
在这一步中,我们将创建一个 XKCD 风格的图表,展示时间与整体健康状况之间的关系。该图表基于 XKCD 的《拥有炉灶》漫画。
with plt.xkcd():
fig = plt.figure()
ax = fig.add_axes((0.1, 0.2, 0.8, 0.7))
ax.spines[['top', 'right']].set_visible(False)
ax.set_xticks([])
ax.set_yticks([])
ax.set_ylim([-30, 10])
data = np.ones(100)
data[70:] -= np.arange(30)
ax.annotate(
'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))
ax.plot(data)
ax.set_xlabel('time')
ax.set_ylabel('my overall health')
fig.text(
0.5, 0.05,
'"Stove Ownership" from xkcd by Randall Munroe',
ha='center')
plt.show()
创建一个 XKCD 风格的柱状图
在这一步中,我们将创建一个 XKCD 风格的柱状图。该图表基于 XKCD 的《目前的数据》漫画。
with plt.xkcd():
fig = plt.figure()
ax = fig.add_axes((0.1, 0.2, 0.8, 0.7))
ax.bar([0, 1], [0, 100], 0.25)
ax.spines[['top', 'right']].set_visible(False)
ax.xaxis.set_ticks_position('bottom')
ax.set_xticks([0, 1])
ax.set_xticklabels(['经实验证实', '经实验证伪'])
ax.set_xlim([-0.5, 1.5])
ax.set_yticks([])
ax.set_ylim([0, 110])
ax.set_title("超自然能力的说法")
fig.text(
0.5, 0.05,
'"The Data So Far" from xkcd by Randall Munroe',
ha='center')
plt.show()
总结
在本教程中,我们学习了如何使用来自 XKCD 网络漫画的 xkcd 风格创建两种不同类型的图表。我们首先创建了一个展示时间与整体健康状况之间关系的 xkcd 风格图表。然后,我们创建了一个基于 XKCD 的《目前的数据》漫画的 XKCD 风格柱状图。通过使用 xkcd 风格,我们可以创建有趣且引人入胜的可视化效果,肯定能吸引我们受众的注意力。