我正在尝试使用以下代码在一个绘图上绘制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)])
因为当我注释掉这两行时,不会显示错误消息。但我仍然不知道是什么问题导致了这两行中的错误。 我仍然无法描绘出我想要的数字。我能得到的是
我认为数据已经绘制在图形上,因为当我将鼠标放在图形上时,x和y的值将显示在屏幕上。我真的不知道剧情不出现的确切原因是什么
该错误由行
ax.set_xticks([range(1,1001,50)])
产生,该行在列表中创建一个列表。改用ax.set_xticks(range(1,1001,50))
您看不到线条的事实可能是因为线条不在查看范围内。这是因为观察范围不会自动缩放到轴内的艺术家
因此,您可能需要首先设置限制
ax.set_xlim(1,951)
、ax.set_ylim(-1,1)
相关问题 更多 >
编程相关推荐