AttributeError:未知属性插值

时间:2019-04-19 19:18:32

标签: python

我应该通过离散耦合微分方程来显示Gray-Scott模型的图像。

添加了imshow部分后,我开始收到此错误消息:

  File "C:\Users\Chad Thomas\Anaconda3\lib\site-packages\matplotlib\artist.py", line 912, in _update_property
    raise AttributeError('Unknown property %s' % k)

AttributeError: Unknown property interpolations

我不知道是什么问题。 错误来自底部的imshow代码,但我提供了其余的以防万一。

import numpy as np
import matplotlib.pyplot as plt

#parameters
N=128
F=.042
k=.062
Du=(2**-5)*(N**2/6.25)
Dv=adjust(1**-5)*(N**2/6.25)
tend=100                                      
dt=tend/N
t=0

#start arrays
U=np.ones((N,N))
V=np.zeros((N,N))

#Initial Value Boxes (20x20 in middle)
low=int(((N/2)-10))
high=int(((N/2)+10))+1
U[low:high,low:high]=.5
V[low:high,low:high]=.25

#Random Noise
U+=.01*np.random.random((N,N))
V+=.01*np.random.random((N,N))

#Solve
pstep=100
for t in range(tend):
    Usave=U.copy()
    M=U
    B=V
    U=-Du*(np.roll(U,1)+np.roll(U,-1)+np.roll(U,1,axis=False)+np.roll(U,-1,axis=False)-4*M)+(M*B*B)-F*(1-M)+(M+dt)
    Vsave=V.copy()
    V=-Dv*(np.roll(V,1)+np.roll(V,-1)+np.roll(V,1,axis=False)+np.roll(V,-1,axis=False)-4*B)-(M*B*B)+(F+k)*B+(B+dt)
    if t%pstep ==0:
        plt.imshow(U, interpolations='bicubic',cmap=plt.cm.jet)
        #plt.savefig("C:\Users\Chad Thomas\Desktop\Python Programs\plots\imshow-"+str(t//pstep).zfill(3)+".png")

我只希望它现在显示某种图像。 (希望是中间的正方形)

2 个答案:

答案 0 :(得分:0)

是错字。 plt.imshow接受关键字参数interpolation而不是interpolations(请注意末尾缺少的s)。

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html

答案 1 :(得分:0)

问题恰如指示的那样:没有属性插值。但是有一个属性interpolation,因此,如果将该行更改为

,将会获得更大的成功
plt.imshow(U, interpolation='bicubic',cmap=plt.cm.jet)