您可以使用numpy.nan代替None。
import matplotlib.pyplot as pyplotimport numpyx = range(5)k = numpy.array([(1.,0.001), (1.1, 0.002), (numpy.nan, numpy.nan), (1.2, 0.003), (0.99, 0.004)])Fig, ax = pyplot.subplots()# This plots a gap---as desiredax.plot(x, k[:,0], 'k-')ax.plot(range(len(y)), y[:,0]+y[:,1], 'k--')
或者您也可以屏蔽x值,这样索引在x和y之间保持一致
import matplotlib.pyplot as pyplotimport numpyx = range(5)y = numpy.array([(1.,0.001), (1.1, 0.002), (numpy.nan, numpy.nan), (1.2, 0.003), (0.99, 0.004)])Fig, ax = pyplot.subplots()ax.plot(range(len(y)), y[:,0]+y[:,1], 'k--')import matplotlib.pyplot as pyplotimport numpyx = range(5)k = numpy.array([(1.,0.001), (1.1, 0.002), (None, None), (1.2, 0.003), (0.99, 0.004)])Fig, ax = pyplot.subplots()# This plots a gap---as desiredax.plot(x, k[:,0], 'k-')# I'd like to plot# k[:,0] + k[:,1]# but I can't add Nonearr_none = np.array([None])mask = (k[:,0] == arr_none) | (k[:,1] == arr_none)ax.plot(numpy.arange(len(y))[mask], k[mask,0]+k[mask,1], 'k--')



