带直方图的散点图与可定位轴

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在数据可视化中,散点图用于展示两个变量之间的关系。此外,直方图对于展示单个变量的分布很有用。在本教程中,你将学习如何使用 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 创建了散点图和直方图。最后,你显示了该图表。