可定制的散点图可视化

Beginner

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

简介

在本教程中,我们将学习如何使用 Python Matplotlib 创建具有不同标记颜色和大小的散点图。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入必要的库

我们将首先导入必要的库,即 Matplotlib 和 Numpy。

import matplotlib.pyplot as plt
import numpy as np

加载数据

我们将从 mpl-data/sample_data 目录中加载一个来自雅虎 csv 数据的 numpy 记录数组,其字段包括日期、开盘价、最高价、最低价、收盘价、成交量、调整收盘价。记录数组在日期列中将日期存储为具有日单位('D')的 np.datetime64。

import matplotlib.cbook as cbook

price_data = cbook.get_sample_data('goog.npz')['price_data'].view(np.recarray)
price_data = price_data[-250:]  ## 获取最近 250 个交易日的数据

计算散点图所需的值

我们将计算用于散点图的 delta1、成交量和收盘价的值。

delta1 = np.diff(price_data.adj_close) / price_data.adj_close[:-1]

## 标记大小,单位为点^2
volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2
close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2]

创建散点图

我们将使用计算出的值创建一个具有不同标记颜色和大小的散点图。

fig, ax = plt.subplots()
ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5)

ax.set_xlabel(r'$\Delta_i$', fontsize=15)
ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=15)
ax.set_title('Volume and percent change')

ax.grid(True)
fig.tight_layout()

plt.show()

总结

我们已经学习了如何使用 Python 的 Matplotlib 创建一个具有不同标记颜色和大小的散点图。我们首先导入了必要的库,然后加载数据,计算散点图所需的值,并创建了散点图。