我有一组数据,我想将其绘制为折线图。对于每个系列,都缺少一些数据(但每个系列都不同)。目前 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()
这导致
关于python - matplotlib:在忽略缺失数据的点之间画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399689/