简介
本教程将指导你使用 Python 中的 Matplotlib 创建六边形分箱图。六边形分箱图是一种二维直方图,其中的箱是六边形,颜色表示每个箱内的数据点数量。它们对于可视化大型数据集的分布很有用。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库
要创建六边形分箱图,我们需要导入以下库:
matplotlib.pyplot用于创建图表numpy用于生成随机数据
import matplotlib.pyplot as plt
import numpy as np
生成数据
我们将使用 numpy.random.standard_normal() 生成 100,000 个数据点。standard_normal() 从均值为 0、标准差为 1 的标准正态分布中生成随机数。
np.random.seed(19680801)
n = 100_000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
xlim = x.min(), x.max()
ylim = y.min(), y.max()
创建六边形分箱图
我们将使用 matplotlib.pyplot.hexbin() 创建六边形分箱图。
fig, ax = plt.subplots(figsize=(9, 4))
hb = ax.hexbin(x, y, gridsize=50, cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("Hexagon binning")
cb = fig.colorbar(hb, ax=ax, label='counts')
在这里,我们将网格大小设置为 50,并将颜色映射设置为 'inferno'。我们还添加了一个颜色条来显示每个六边形内的数据点数量。
添加对数颜色刻度
我们可以通过在 hexbin() 中设置 bins='log' 为六边形分箱图添加对数颜色刻度。
fig, ax = plt.subplots(figsize=(9, 4))
hb = ax.hexbin(x, y, gridsize=50, bins='log', cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("With a log color scale")
cb = fig.colorbar(hb, ax=ax, label='log10(N)')
显示图表
最后,我们使用 plt.show() 显示图表。
plt.show()
总结
在本教程中,我们学习了如何使用 Python 中的 matplotlib.pyplot.hexbin() 创建六边形分箱图。我们使用 numpy.random.standard_normal() 和 numpy.random.standard_normal() 生成随机数据,创建六边形分箱图,添加对数颜色刻度,并使用 plt.show() 显示该图。