Как исправить мой код Python для построения фигуры? - PullRequest
1 голос
/ 04 ноября 2019

Мой код завершает работу с кодом 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)

1 Ответ

0 голосов
/ 04 ноября 2019

У вас нет

plt.show()

, который отрисовывает и блокирует выход из программы.

...