我是初学者,当我尝试绘制序列时,我遇到了问题:
我的代码给了我这个错误信息: “ValueError:x和y必须具有相同的第一维”
hold(True)
x=[0.5]
for r in arange(2,4,0.1):
for i in range(170):
xn= x[-1]
xnp1 = r*xn*(1-xn)
x.append(xnp1)
xa=array(x)
rplot=0*xa+r
plot (rplot, xn,".")
show()
答案 0 :(得分:0)
您尝试绘制xn
(因变量,又名" y数据")与rplot
(自变量,又名" x-data")。
从您的代码中,您会看到xn
引用数组x
中的最后一项,因此它是单个标量。 rplot
然而与数组x
一样长,因为你做到了这样:
rplot = 0*xa + r
这就像绘制数字" 1"多个x值(如[1, 2, 3]
)。你可以看出这很令人困惑,对吧?
目前尚不清楚你想要绘制的是什么(哪些变量与其他变量相对应),但这篇文章的确回答了为什么你会得到这个错误。也许它可以帮助你找出你真正想要绘制的内容。
根据收到的评论,您可能正在寻找此代码:
hold(True)
x = [0.5]
for r in arange(2,4,0.1):
for _ in range(170):
xn = x[-1]
x.append( r*xn*(1 - xn) )
rplot = np.full(len(x), r)
plot(rplot, x, ".")
show()
对于r
点数组中的每个range(2, 4, .1)
,它都会依赖于该值。该特定值r
的点数组都具有相同的纵坐标,即r
。它看起来像条纹。