当x轴间距不相等时,Matplotlib不会连接数据点

2024-09-28 03:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的真实数据有数千个数据点,所以我现在使用一个小数组来测试

我试图去掉y轴数据中的零值,并根据x轴数据中的相关索引绘制非零值。我可以看到我在新数组中得到了正确的数字,但是我的图表是空白的

我的阵列打印输出:

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

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

如果我绘制原始数据,它就可以工作了(工作就是所有的点都用线连接起来)。另外,如果在plot命令中添加“.”,则会得到点所在的点,但无法将数据点连接起来。我想这可能是因为我的新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()

Tags: 数据plotnp绘制数组arrayelpl
1条回答
网友
1楼 · 发布于 2024-09-28 03:21:30

基本上你需要做:

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

因为

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

当你看到Typex2y2你会看到:

>>> type(y2)
<class 'list'>

但是x2[0]y2[0]是要绘制的数组:

>>> x2[0]
array([ 1,  3,  4,  5,  6,  9, 11])
>>> y2[0]
array([ 1,  6, 54,  4,  2,  3,  8])
>>> type(y2[0])
<class 'numpy.ndarray'>
>>>

相关问题 更多 >

    热门问题