当x轴不等间距时,Matplotlib不会加入数据点

时间:2015-08-12 16:57:32

标签: python matplotlib plot

我的真实数据有数千个数据点,因此我目前正在使用一个小数组来测试。

我试图摆脱y轴数据中的零点,并根据x轴数据中的相关指数绘制非零值。我可以看到我在新阵列中得到了正确的数字,但我的图表是空白的。

我的数组输出打印:

[array([ 1,  6, 54,  4,  2,  3,  8])]

[array([ 1,  3,  4,  5,  6,  9, 11])]

如果我绘制原始数据,它是有效的(工作点是全部用线连接)。另外如果我添加'。'对于绘图命令,我得到了点所在的点,但我无法将数据点连接起来。我想这可能是因为我的新x轴数据不连续,但我不确定。

y1 = np.array([1,0,6,54,4,2,0,0,3,0,8])
x1 = np.array([1,2,3,4,5,6,7,8,9,10,11])
yind = y1.nonzero()
y2 = []
x2 = []

for el in yind:
    y2.append(y1[el]) 
    x2.append(x1[el])

print y2
print x2
pl.plot(x2,y2)
pl.show()

1 个答案:

答案 0 :(得分:1)

基本上你需要这样做:

plt.plot(x2[0],y2[0])

因为

>>> x2
[array([ 1,  3,  4,  5,  6,  9, 11])]
>>> y2
[array([ 1,  6, 54,  4,  2,  3,  8])]

当您看到Typex2的{​​{1}}时,您会看到:

y2

>>> type(y2) <class 'list'> x2[0]是您要绘制的数组:

y2[0]