绘制序列会导致:“ValueError:x和y必须具有相同的第一维”

时间:2016-06-15 23:07:59

标签: python python-3.x matplotlib

我是初学者,当我尝试绘制序列时,我遇到了问题:

我的代码给了我这个错误信息: “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()

1 个答案:

答案 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。它看起来像条纹。