简介
在本教程中,我们将学习如何使用 Python Matplotlib 创建具有不同标记颜色和大小的散点图。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
在本教程中,我们将学习如何使用 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 创建一个具有不同标记颜色和大小的散点图。我们首先导入了必要的库,然后加载数据,计算散点图所需的值,并创建了散点图。