简介
在数据可视化中,经常会遇到需要绘制的缺失数据。在本教程中,我们将学习如何使用 Matplotlib 绘制带有缺失值的数据。我们将探索三种方法:去除不需要的数据点、屏蔽点以及将值设置为 NaN。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
导入所需库
我们需要导入本教程中将会用到的库。我们将使用 Matplotlib 和 NumPy。
import matplotlib.pyplot as plt
import numpy as np
创建用于绘图的数据
我们将使用 NumPy 创建用于绘图的数据。我们将在 -π/2 到 π/2 之间生成 31 个数据点,并计算这些值的立方的余弦值。
x = np.linspace(-np.pi/2, np.pi/2, 31)
y = np.cos(x)**3
移除数据点
我们将移除 y > 0.7 的数据点。我们将创建一个新的 x 数组和 y 数组,其中只包含剩余的数据点。
x2 = x[y <= 0.7]
y2 = y[y <= 0.7]
屏蔽数据点
我们将使用掩码数组屏蔽 y > 0.7 的数据点。我们将创建一个带有掩码值的新 y 数组。
y3 = np.ma.masked_where(y > 0.7, y)
设置为无效值(NaN)
我们将把 y > 0.7 的值设置为无效值(NaN)。我们将创建一个包含无效值(NaN)的新 y 数组。
y4 = y.copy()
y4[y3 > 0.7] = np.nan
绘制数据
我们将使用不同的标记和颜色绘制所有四个数据集,以便区分它们。
plt.plot(x*0.1, y, 'o-', color='lightgrey', label='No mask')
plt.plot(x2*0.4, y2, 'o-', label='Points removed')
plt.plot(x*0.7, y3, 'o-', label='Masked values')
plt.plot(x*1.0, y4, 'o-', label='NaN values')
plt.legend()
plt.title('Masked and NaN data')
plt.show()
解读图表
最终生成的图表将有四条颜色和标记各不相同的线。第一条线(浅灰色)代表未进行屏蔽处理的原始数据。第二条线(橙色)代表已移除不需要的数据点后的数据。第三条线(绿色)代表带有屏蔽值的数据。第四条线(蓝色)代表带有无效值(NaN)的数据。此图表展示了如何使用不同方法将缺失数据可视化。
总结
在本教程中,我们学习了如何使用 Matplotlib 绘制带有缺失值的数据。我们探讨了三种方法:移除不需要的数据点、屏蔽数据点以及将值设置为无效值(NaN)。我们使用 NumPy 创建了用于绘制的数据,并使用不同的标记和颜色来区分数据集。我们还解读了生成的图表,以了解可视化缺失数据的不同方法。