无法在p上看到线段

2024-06-12 21:34:09 发布

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

我正在尝试使用以下代码在一个绘图上绘制1000条线段

corr1 = [round(pic.autocorr(i),4) for i in range(1,1001)]

index = range(1,1001)
y_points = zip(index, corr1)
x_points = zip(index, [ 0 for i in range(1,1001)])

line_collection = []

for i in range(0,1000):
    temp = []
    temp.append(x_points[i])
    temp.append(y_points[i])
    line_collection.append(temp)

lc = mc.LineCollection(line_collection, color = 'r', linewidth = 1)
fig, ax = plt.subplots(figsize = (20,6))
ax.cla()
ax.add_collection(lc)
ax.set_ylabel('autocorrelation')
ax.set_xlabel('lag')
ax.set_xticks([range(1,1001,50)])
ax.set_yticks([ x/10.0 for x in range(-10, 11,1)])
plt.show()

我得到的是这样的错误消息

ValueError: The truth value of an array with more than one element is     ambiguous. Use a.any() or a.all()

我认为错误是由这两条线引起的

ax.set_xticks([range(1,1001,50)])
ax.set_yticks([ x/10.0 for x in range(-10, 11,1)])

因为当我注释掉这两行时,不会显示错误消息。但我仍然不知道是什么问题导致了这两行中的错误。 我仍然无法描绘出我想要的数字。我能得到的是 enter image description here

我认为数据已经绘制在图形上,因为当我将鼠标放在图形上时,x和y的值将显示在屏幕上。我真的不知道剧情不出现的确切原因是什么


Tags: inforindex错误line绘制rangezip
1条回答
网友
1楼 · 发布于 2024-06-12 21:34:09

该错误由行ax.set_xticks([range(1,1001,50)])产生,该行在列表中创建一个列表。改用ax.set_xticks(range(1,1001,50))

您看不到线条的事实可能是因为线条不在查看范围内。这是因为观察范围不会自动缩放到轴内的艺术家

因此,您可能需要首先设置限制ax.set_xlim(1,951)ax.set_ylim(-1,1)

相关问题 更多 >