我应该通过离散耦合微分方程来显示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")
我只希望它现在显示某种图像。 (希望是中间的正方形)
答案 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)