matplotlib: построение пустых массивов с None в качестве значений
У меня есть массив, который выглядит так:
k = numpy.array([(1.,0.001), (1.1, 0.002), (None, None),
(1.2, 0.003), (0.99, 0.004)])
Я хочу построить значения, которые не(None, None)
и сохранить индекс значения массива. То есть я хочу пробел везде, где есть(None, None)
значение.
Когда это будет сделано, яхотел бы построить
y = k[:,0] + k[:,1]
Но я могу'даже добавить массивы вместе. Я попытался замаскировать массив, но я потерял значения индекса оригиналаk
массив.
Минимальный пример:
import matplotlib.pyplot as pyplot
import numpy
x = 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 desired
ax.plot(x, k[:,0], 'k-')
# I'd like to plot
# k[:,0] + k[:,1]
# but I can't add None
# Here I get rid of the (None, None) values so I can add
# But I lose the original indexing
mask = k != (None, None)
y = k[mask].reshape((-1,2))
ax.plot(range(len(y)), y[:,0]+y[:,1], 'k--')