我有一些数据,X和Y,我想简单地画成X和Y.
然而,对于Y的某些元素,没有数据.我将其记录为None
而不是0,因为matplotlib不会绘制它(我不想画一条从零到零的线).
我注意到如果我这样做,这是可行的:
import numpy as np
import matplotlib.pyplot as plt
X = np.array([1,2,3,4])
Y = np.array([1,2,3,None])
Y_ERR = np.array([1,1,1,None])
plt.errorbar(X, Y, yerr = Y_ERR)
plt.show()
然而,当我改用列表时,我得到了错误:
X = [1,2,3,4]
Y = [1,2,3,None]
plt.errorbar(X, Y, yerr = Y_ERR)
plt.show()
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
个
我还意识到,如果我对plt.errorbar
函数中的NumPy数组使用.tolist()
函数,则不会发生错误,而我认为这应该等同于使用列表.例如:
X = np.array([1,2,3,4])
Y = np.array([1,2,3,None])
Y_ERR = np.array([1,1,1,None])
plt.errorbar(X.tolist(), Y.tolist(), yerr = Y_ERR.tolist())
plt.show()
为何会是这样呢?