我的代码正在退出,代码为0,所以我的代码中没有错误,但它仍然在运行,没有在我想要的圆柱体上绘制流,有人能帮我解决这个问题吗?
import sympy as s
import matplotlib.pyplot as plt
import numpy as np
from sympy.abc import x,y
def cylinder_stream_fct(U=1,R=1):
r=s.sqrt(x**2+y**2)
theta=s.atan2(y,x)
return U*(r-R**2/r)*s.sin(theta)
def velocity_field(psi):
u=s.lambdify((x,y), psi.diff(y), 'numpy')
v=s.lambdify((x,y), -psi.diff(x), 'numpy')
return u,v
def plot_streamlines(ax, u, v,xlim=(-1,1), ylim=(-1,1)):
x0, x1=xlim
y0, y1=ylim
Y,X= np.ogrid[y0:y1:100j,x0:x1:100j]
ax.streamplot(X,Y,u(X,Y),v(X,Y),color='red')
def format_axes(ax):
ax.set_aspect('equal')
ax.figure.subplots_adjust(bottom=0, top=1, left=0, right=1)
ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])
for spine in ax.spines.values():
spine.set_visible(False)
psi=cylinder_stream_fct()
u,v=velocity_field(psi)
xlim=ylim=(-3,3)
fig, ax=plt.subplots(figsize=(4, 4))
plot_streamlines(ax, u, v, xlim, ylim)
c=plt.Circle((0,0), radius=1,facecolor='none')
ax.add_patch(c)
format_axes(ax)
您没有
plt.show()
它渲染并阻止程序退出。