python教程—matplotlib:在忽略丢失数据的点之间绘制线-Python实用宝典

python教程—matplotlib:在忽略丢失数据的点之间绘制线

我有一组数据,我想把它们画成线形。对于每个系列,都缺少一些数据(但是每个系列的数据不同)。目前,matplotlib不绘制跳过丢失数据的行:例如

我有一组数据,我想把它们画成线形。对于每个系列,都缺少一些数据(但是每个系列的数据不同)。目前,matplotlib不绘制跳过丢失数据的行:例如

    import matplotlib.pyplot as plt xs = range(8) series1 = [1, 3, 3, None, None, 5, 8, 9] series2 = [2, None, 5, None, 4, None, 3, 2] plt.plot(xs, series1, linestyle='-', marker='o') plt.plot(xs, series2, linestyle='-', marker='o') plt.show()

结果生成一个线中有间隙的图。我如何让matplotlib在间隙中画线?(我不想插入数据)。

回答

可以这样屏蔽NaN值:

    import numpy as np import matplotlib.pyplot as plt xs = np.arange(8) series1 = np.array([1, 3, 3, None, None, 5, 8, 9]).astype(np.double) s1mask = np.isfinite(series1) series2 = np.array([2, None, 5, None, 4, None, 3, 2]).astype(np.double) s2mask = np.isfinite(series2) plt.plot(xs[s1mask], series1[s1mask], linestyle='-', marker='o') plt.plot(xs[s2mask], series2[s2mask], linestyle='-', marker='o') plt.show()

这将导致

matplotlib:在忽略丢失数据的点之间绘制线

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论