简介
在数据可视化中,散点图用于展示两个变量之间的关系。此外,直方图对于展示单个变量的分布很有用。在本教程中,你将学习如何使用 Python 的 Matplotlib 库创建带有直方图的散点图。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。
导入所需库
在这一步中,我们将导入必要的库。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import make_axes_locatable
创建随机数据
在这一步中,我们将创建用于散点图的随机数据。
np.random.seed(19680801)
x = np.random.randn(1000)
y = np.random.randn(1000)
创建散点图
在这一步中,我们将使用步骤 2 中的随机数据创建一个散点图。
fig, ax = plt.subplots(figsize=(5.5, 5.5))
ax.scatter(x, y)
ax.set_aspect(1.)
创建直方图
在这一步中,我们将使用 mpl_toolkits.axes_grid1 中的 make_axes_locatable 为 x 和 y 变量创建直方图。
divider = make_axes_locatable(ax)
ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
ax_histx.xaxis.set_tick_params(labelbottom=False)
ax_histy.yaxis.set_tick_params(labelleft=False)
binwidth = 0.25
xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
lim = (int(xymax/binwidth) + 1)*binwidth
bins = np.arange(-lim, lim + binwidth, binwidth)
ax_histx.hist(x, bins=bins)
ax_histy.hist(y, bins=bins, orientation='horizontal')
ax_histx.set_yticks([0, 50, 100])
ax_histy.set_xticks([0, 50, 100])
显示图表
在这一步中,我们将显示带有直方图的散点图。
plt.show()
总结
在本教程中,你学习了如何使用 Python 的 Matplotlib 库创建带有直方图的散点图。你首先导入了必要的库,然后为散点图创建了随机数据。接下来,你使用 make_axes_locatable 创建了散点图和直方图。最后,你显示了该图表。