Ipython: %matplotlib рдЗрдирд▓рд╛рдЗрди ipywidgets 6.0 рдЗрдВрдЯрд░реИрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдорд╛рд░реНрдЪ 2017  ┬╖  46рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ipython/ipython

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ, %matplotlib inline рдЕрдм рдирдП ipywidgets 6.0 @interact рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдЦреЗрд▓рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдкреНрд▓реЗ_рдбреЗрдЯрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ (рджреЗрдЦреЗрдВ рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрди рд╣реБрдХ https://github.com/ipython/ipython/blob/7cde22957303ab53df8bd464ad5d7ed616197f31/ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИред IPython/core/pylabtools.py#L383)ред ipywidgets 6.0 рдореЗрдВ, рд╣рдордиреЗ рдпрд╣ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░реИрдХреНрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ

import matplotlib.pyplot as plt
from ipywidgets import interact

%matplotlib inline
x = [1,2,5,4,3]
@interact(n=(2,5))
def f(n):
    plt.plot(x[:n])

рдпрд╣ рдореБрджреНрджрд╛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб (рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реИ) рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ ipywidgets рдЗрдВрдЯрд░реИрдХреНрдЯ рдХреЗ рд╕рд╛рде рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рдХреЛ рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рддреБрд░рдВрдд рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдерд╛, рди рдХрд┐ рдХрд┐рд╕реА рд╕реЗрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рддреЛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рд╕рдХреНрд╖рдо рдХрд┐рдП рдмрд┐рдирд╛ )

import matplotlib.pyplot as plt
from ipywidgets import interact

x = [1,2,5,4,3]
@interact(n=(2,5))
def f(n):
    plt.plot(x[:n])
    plt.show()

рд╕реАрд╕реА @SylvainCorlay , @tacaswellред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп рд╕рдм, рдореИрдВ рдЗрд╕рдХреЗ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд╡рдЬреВрдж рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ matplotlib + рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВред

рд╕рднреА 46 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдзрд╛рди рд╣реИ?

import matplotlib.pyplot as plt
from ipywidgets import interact
from ipykernel.pylab.backend_inline import flush_figures

%matplotlib inline
x = [1,2,5,4,3]
@interact(n=(2,5))
def f(n):
    plt.plot(x[:n])
    flush_figures()

CC @minrk , рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрдирд▓рд╛рдЗрди mpl рдмреИрдХрдПрдВрдб рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЖрдХреГрддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрд┐рд╕ рдЕрдиреБрдорд╛рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ? рдЖрдк рдЗрд╕реЗ рд╕рднреА рдЖрдВрдХрдбрд╝реЛрдВ рдкрд░ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдХреЛрдб рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдиреАрдореЗрд╢рди рд╣реЛрдирд╛ рдЖрдо рдмрд╛рдд рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг @interact ?

рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг @interact ?

рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ, рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ matplotlib рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреИрдХрдПрдВрдб)ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдлреНрд▓рд╢ рдХрд░рдирд╛ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╕реНрдкрд╖реНрдЯ рдирд┐рд╣рд┐рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рд╡рд╣ рд╕рдм ...

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЗрддрдирд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ (рдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) ...

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рд╣реИ - рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рд╣рдореЗрдВ рдлреНрд▓рд╢_рдлрд┐рдЧрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдирдХ plt.show рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

import matplotlib.pyplot as plt
from ipywidgets import interact

%matplotlib inline
x = [1,2,5,4,3]
@interact(n=(2,5))
def f(n):
    plt.plot(x[:n])
    plt.show()

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдореЗрдВ рд╢реЛ() рдХрдорд╛рдВрдб рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдЙрдЪрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рд╣рдо рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ (рдФрд░ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЖрдЙрдЯрдкреБрдЯ) рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕ рд╣реБрдХ рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рддрдЪреАрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдореИрдВрдиреЗ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред

рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрдЯ-рд╕рд╛рде-рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЖрдВрдХрдбрд╝реЗ рджрд┐рдЦрд╛рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ 'рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡' рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХрд╛ рдЖрдо рддреМрд░ рдкрд░ рдЕрд░реНрде рд╣реИ plt.show рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕реЗ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

IOThread рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдореБрдЭреЗ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП sys.stdout.flush() рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдереЛрдбрд╝реА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИрдВрдбрд▓рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ - рд╢рд╛рдпрдж рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬрд╝реЗрдВ!)ред flush_display рд╣реБрдХ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ? рд╣рдо рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдлреНрд▓рд╢ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдлреНрд▓рд╢ рдХрд░ рджреЗрдВрдЧреЗред рдЗрд╕ рддрд░рд╣ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ stdout/stdin рдлреНрд▓рд╢рд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдареАрдХ рд╣реИ, рдпрд╛ рджреВрд╕рд░реА рдУрд░, рд╢рд╛рдпрдж рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╕реЗрд▓ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рддрдм рд╣рдо рд╢рд╛рдпрдж рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЗрдВрдЯрд░реИрдХреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмрд╛рдж рдореЗрдВ рднреА, рдЕрдЧрд░ рдмрд╛рддрдЪреАрдд рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рд╕реЗрд▓ рдореЗрдВ рдереАред

рдлрд┐рд░ рд╕реЗ рдЦреБрд▓ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рддрдЪреАрдд рдЕрднреА рдмрдВрдж рдирд╣реАрдВ рд╣реБрдИ рд╣реИ...

рдореБрдЭреЗ рдлреНрд▓рд╢_рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣реБрдХ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдПрдХ рдирдП рд╣реБрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ipython рдФрд░ ipykernel рдФрд░ ipywidgets рдХреЗ рд╕рдордиреНрд╡рд┐рдд рд░рд┐рд▓реАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЕрдЧрд░ рд╣рдо рдПрдХ рдРрд╕реЗ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрдХрд▓ рдХреЛрд╢рд┐рдХрд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ,

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реЗ рдХреБрдВрдЬреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ 'рдЕрдЧрд░' рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╕реЛрдЪрддрд╛

рдЪ рд╣рдо рдПрдХ рдРрд╕реА рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрдХрд▓ рдХреЛрд╢рд┐рдХрд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реЗ рдХреБрдВрдЬреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ 'рдЕрдЧрд░' рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╕реЛрдЪрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд░ рдХреЛрдИ (рдЕрднреА рддрдХ) рдирд╣реАрдВ рд╣реВрдВред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рд╡рд╛рд▓рд╛ рдПрдХ рд╕реЗрд▓ рдерд╛, рддреЛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯ рд░рди, рдлрд┐рд░ рдХреБрдЫ рдФрд░ рдХреЛрдб, рд╕реЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреАрди рд╕реЗрд▓ (рдпрд╛рдиреА, рдкреЛрд╕реНрдЯ-рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯ рд░рди рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рд░) рдХреА рддрд░рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрд▓рд╢_рдбрд┐рд╕реНрдкреНрд▓реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реНрди: JLab рдХрд╛рдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛?

@willingc рд╡рд┐рдЬреЗрдЯ рдорд┐рд░рд░ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

@SylvainCorlay рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдм рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрди рдЖрд░реНрдмрд░ рдореЗрдВ рд▓реЛрдЧ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╢реЛрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреЛ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ ipympl рд╡рд┐рдЬреЗрдЯ matplotlib рдХрд╛ рдмреИрдХрдПрдВрдбред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ conf.d рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...

рд╣рд╛рдВ, рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рд╡рд╛рд▓рд╛ рдПрдХ рд╕реЗрд▓ рдерд╛, рддреЛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯ рд░рди, рдлрд┐рд░ рдХреБрдЫ рдФрд░ рдХреЛрдб, рд╕реЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреАрди рд╕реЗрд▓ (рдпрд╛рдиреА, рдкреЛрд╕реНрдЯ-рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯ рд░рди рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рд░) рдХреА рддрд░рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╛рдХрдИ, рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреЛ рдмрд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдПрдХ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдмрд╛рддрдЪреАрдд рдХреЗ рдкрд╣рд▓реЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рд▓рд┐рдП? рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ: @interact , рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реИрдВ: рдПрдХ рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЗрдВрдЯрд░реЗрдХреНрдЯреЗрдб-рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╣рд▓реЗ рдЖрдордВрддреНрд░рдг рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдЖрдкрдиреЗ @interact_manual , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреЛ рдмрд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдПрдХ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдмрд╛рддрдЪреАрдд рдХреЗ рдкрд╣рд▓реЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рд▓рд┐рдП?

рдЗрд╕ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

plt.plot([1,2,3])
@interact(n=(1,10))
def f(n):
    plt.plot([1,n])
plt.plot([4,5,6])

рдЪреВрдВрдХрд┐ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рд╕рдВрдЪрдпреА рд╣реИ, рдФрд░ рдЖрдк рдЗрдВрдЯрд░реИрдХреНрдЯ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд┐рдЧрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдлрд┐рдЧрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рд╕реЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВред рдпрд╣реА рд╣рдо рдлреНрд▓рд╢рд┐рдВрдЧ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рднреА рдХрд░рддреЗ рд╣реИрдВред

рдЕрд╕рд▓ рдореЗрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ?

рдмрд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░: рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рдирд╣реАрдВ рд╣реИ; рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рддреАрди рднреВрдЦрдВрдбреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ рддреЛ рдореИрдВ рд╕рднреА рд╕рд╛рдЬрд┐рд╢ рдХреЙрд▓ @interact рдЕрдВрджрд░ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ .plot() рдмрд╛рдж flush_figures рдкрд░ рдХреЙрд▓ рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ?

@myyc рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд░реНрдердкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред plot рдкреНрд▓реЙрдЯ рдкрд░ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИ ....

рдореЗрд░рд╛ рдорддрд▓рдм рд╡рд┐рд╢рд┐рд╖реНрдЯ ipython рдЗрдирд▓рд╛рдЗрди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ matplotlib рдХреЗ рд╡рд┐рдкрд░реАрдд рдерд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрд▓ рдПрдХ "рдПрдХрдорд╛рддреНрд░ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди" рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдорд▓реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ ...

рдореЗрдВ рд╕рдордЬред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЗрддрдирд╛ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдЪрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдпрдж рдиреЛрдЯрдмреБрдХ рдмреИрдХрдПрдВрдб рдпрд╛ рдЖрдИрдкреАрдЖрдИрдПрдордкреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЖрдВрдХрдбрд╝реЗ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

ipywidgets рдХреЗ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП matplotlib- рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдЬреЗрд╕рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ:

plt.plot([1,2,3])
@interact(n=(1,10))
def f(n):
    plt.plot([1,n])
plt.plot([4,5,6])

рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдмрд╣реБрдд рд╕рд╛рд░реА рд▓рд╛рдЗрдиреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рд╣реИ ..

рд╣рд╛рдБ рдореИрдВ рдкреВрд░реНрдгрддрдГ рд╕рд╣рдордд рд╣реВрдБред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╕реЗрдЯрдЕрдк рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддрдп рдХрд┐рдпрд╛ (рдкрдВрдбреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛), "рдПрдХ рдлрд┐рдХреНрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ" :)

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЬреАрдердм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрд╛рдЙрдВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрдХрд▓реНрдк рдкрде рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреНрдпреЛрдВ рди рд▓рд┐рдЦреЗрдВ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ?

@interact(n=(1,10))
def f(n):
    plt.plot([1,2,3])
    plt.plot([1,n])
    plt.plot([4,5,6])

рдЖрдк ipympl рдкреИрдХреЗрдЬ (https://github.com/matplotlib/jupyter-matplotlib) рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ matplotlib рд╡рд┐рдЬреЗрдЯ рд╣реИред ipympl рдЕрднреА рднреА рдмрд╣реБрдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди matplotlib рдХреЛрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд░рд┐рд▓реАрдЬрд╝ рд╢реЗрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ jupyterlab рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ...

рдареАрдХ рд╣реИ рдХрд┐ рдУрд╡рд░рд░рд╛рдЗрдб рдПрдХ рднрдпрд╛рдирдХ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореИрдВ рдПрдХ рдлрд┐рдХреНрд╕ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд░рд╣реВрдВрдЧрд╛ :)

рдХреЗрд╡рд▓ рдПрдХ рдЕрд╢рд┐рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: ipywidgets 6.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореЗрд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдХреЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ (рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг)ред рдореИрдВ plt.show() рдХреЙрд▓ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рднреА рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдРрд╕реА рдХреЙрд▓ рдХрд╣рд╛рдВ рдЬреЛрдбрд╝реВрдВ; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрд╛рдж рдХреЗ рдкреНрд▓реЙрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ (рднрд▓реЗ рд╣реА plt.show() рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП)ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╢рд┐рдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдирдЬрд╛рди рд▓рдЧрддрд╛ рд╣реИ - рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг ipywidgets рдореЗрдВ рдХреНрдпрд╛ рд╕рдЯреАрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ? рдХреНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдХреЗ рд╣реБрдХ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд▓рдЧрд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЕрдм рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ? рдпрджрд┐ рдпрд╣ рдмрд╛рдж рд╡рд╛рд▓рд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдХреЗ рджреМрд░рд╛рди рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╕рд╣реА рдХрд╛рдо рдирд╣реАрдВ рд╣реИред

рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдХреЗ рд╣реБрдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ) - рдЖрдк рдЗрд╕реЗ рдХрд░рдиреЗ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

import matplotlib.pyplot as plt
from ipywidgets import interact
%matplotlib inline

@interact(n=(0,10))
def f(n):
    plt.plot([0,n])

рдФрд░ рд╕реНрд▓рд╛рдЗрдбрд░ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд╕реЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ - рдкреЛрд╕реНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рд╣реБрдХ рдкреНрд░рджрд░реНрд╢рди-рдбреЗрдЯрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЖрдордВрддреНрд░рдг рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдПрдХ рд╣реА рд╕реНрд▓рд╛рдЗрдбрд░ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import matplotlib.pyplot as plt
from ipywidgets import interact, IntSlider
%matplotlib inline

x = IntSlider()
@interact(n=x)
def f(n):
    plt.plot([0,n])
    plt.show()
@interact(n=x)
def f(n):
    plt.plot([0,n,0,n])
    plt.show()

рдЬрдм рдПрдХрд▓ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ (рдХрд┐рд╕реА рднреА UI рдореЗрдВ) рдЯреНрд╡реАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреЛрдиреЛрдВ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рд╣рд┐рд▓рддреЗ рд╣реБрдП рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдФрд░ рджреЛрдиреЛрдВ рдЗрдВрдЯрд░реИрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╣реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЙрд▓ рдореЗрдВ рдЪрд▓реЗрдВрдЧреЗред рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрди рд╣реБрдХ рд╕реЗ рдХрд┐рд╕реА рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдЗрдВрдЯрд░реИрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд▓рдд рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ-рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рд╣рдереМрдбрд╝рд╛ рдХрд╛ рдмрд╣реБрдд рдореЛрдЯрд╛ рд╣реИред рдХреЛрдб рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдлреНрд▓рд╢рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╣реАрди-рджрд╛рдиреЗрджрд╛рд░ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ рдПрдХ рд╣реА рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдХрдИ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреЛрдб рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдлреНрд▓рд╢рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╣реАрди-рджрд╛рдиреЗрджрд╛рд░ рд╡рд┐рдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП

Matplotlib рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдлреНрд▓рд╢рд┐рдВрдЧ plt.show

рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдРрд╕реА рдХреЙрд▓ рдХрд╣рд╛рдБ рдЬреЛрдбрд╝реВрдБ; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрд╛рдж рдХреЗ рдкреНрд▓реЙрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ

рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдРрд╕реА рдХреЙрд▓ рдХрд╣рд╛рдБ рдЬреЛрдбрд╝реВрдБ; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрд╛рдж рдХреЗ рдкреНрд▓реЙрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╣рдЬ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП plt.show() рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░реИрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@jasongrout рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬрд┐рд╕ рдХреЛрдб рдкрд░ рдореИрдВ рдЗрд╕реЗ рдорд╛рд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдФрд░ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

@jasongrout рдереЛрдбрд╝реА рдФрд░ рдЦреБрджрд╛рдИ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬреЛ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдЬреБрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рди рдХрд┐ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреА (рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ plt.show() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ)ред

рдпрджрд┐ рдХреЛрдИ рдиреЛрдЯрдмреБрдХ рд╕реЗрд▓ рдореЗрдВ рдкреНрд▓реЙрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ plt.show() , рддреЛ рдмрд╛рдж рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

%matplotlib inline
import matplotlib.pyplot as plt

def plotfun(t):
    fig, ax = plt.subplots(1,1)
    ax.plot([0,t],[0,t])
    plt.show()
    ax.plot([t,0],[0,t])
    plt.show()

plotfun(2)

рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдкреНрд▓реЙрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рднреА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред %matplotlib inline рдмреИрдХрдПрдВрдб рдХреЗ рдмрд┐рдирд╛ рджреЛ рд╕реЗрд▓ред рд╢рд╛рдпрдж @tacaswell рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ plt.show рдкреНрд▓реЙрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,1)
ax.plot([0,1],[0,1])
plt.show()

рдкреНрд▓реЙрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ

ax.plot([1,0],[0,1])
plt.show()

рдХреБрдЫ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛

рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рдЬреНрдпреВрдкрд┐рдЯрд░, ipython, ipywidgets, matplotlib, python3 рдХреЗ рд╕рд╛рде рдореЗрд░реА рдорд╢реАрди рдкрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рд╣реИред

рдпрд╣рд╛рдВ рднреА рдкреБрд╖реНрдЯрд┐ рдХреАред

@jasongrout рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗрд▓ рдореЗрдВ рдЖрдк рдПрдХ рдЖрдХреГрддрд┐ (рдФрд░ рдХреИрдирд╡рд╛рд╕ рдФрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ) рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реА рд╕реЗрд▓ рдореЗрдВ рдЖрдк рдлрд┐рд░ рдореМрдЬреВрджрд╛ рдЕрдХреНрд╖реЛрдВ (рдореМрдЬреВрджрд╛ рдЖрдХреГрддрд┐ рдореЗрдВ) рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред %matplotlib qt рдпрд╛ ipympl (рдпрд╛ рдкреВрд░реНрдг GUI рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА) рдХреЗ рд╕рд╛рде рдкреНрд▓реЙрдЯ _ should_ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрдирд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╢реЙрдЯ рдорд┐рд▓рддрд╛ рд╣реИ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрдирд▓рд╛рдЗрди рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ _all_ рдХреЛ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИ)ред

@tacaswell рдХреНрдпрд╛ рдЗрдирд▓рд╛рдЗрди рдХрд╛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдПрдХ рд╕реЗрд▓ рдореЗрдВ рд╣реИ? рдпрд╣рд╛рдБ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╣реИ:

%matplotlib inline
import matplotlib.pyplot as plt

def plotfun(t):
    fig, ax = plt.subplots(1,1)
    ax.plot([0,t],[0,t])
    plt.show()
    ax.plot([t,0],[0,t])
    plt.show()

plotfun(2)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ plt.show рдкрд░ рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдкреАрдПрдирдЬреА рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдкреНрд▓реЙрдЯ рд╕реЗ рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдбреА-рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд╢реЛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА рдпрд╣ рдЙрд╕реА рд╕реЗрд▓ рдореЗрдВ рд╣реЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд show s рдХреЗ рдмрд┐рдирд╛ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреЙрд▓ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдЗрдирд▓рд╛рдЗрди рдмреИрдХрдПрдВрдб рдХреЛрдб рд╣реИ: https://github.com/ipython/ipykernel/blob/master/ipykernel/pylab/backend_inline.py

рдХреНрдпрд╛ ipywidgets рдФрд░/рдпрд╛ matplotlib рдХрд╛ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@jasongrout рдпрд╣ рдХреЛрдб рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдореИрдВ InlineBackend.close_figures рд╕реЗ False рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдХреНрдпрд╛ рдореБрдЭреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?

(рд╡рд╣ рд╕рд╡рд╛рд▓ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╕рдЪрдореБрдЪ рд╣реИ)

https://github.com/jupyter-widgets/ipywidgets/issues/1457 рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдард╛рдпрд╛ред @ellisonbg - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдлреНрд▓рд╢_рдлрд┐рдЧрд░реНрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ - рдмрд╛рддрдЪреАрдд рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдлреНрд▓рд╢_рдлрд┐рдЧрд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдмрд╛рддрдЪреАрдд рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдкреНрд▓реЙрдЯ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рджреМрд░рд╛рди рдкреНрд▓реЙрдЯ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдлреНрд▓рд╢ рдХрд░реЗрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрдирд▓рд╛рдЗрди рдПрдордкреАрдПрд▓ рдмреИрдХрдПрдВрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХреАрдЪрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдХрд░рдирд╛ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛред рд╢рд╛рдпрдж рд╣рдо рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдлреНрд▓рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╢реЛ() рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рд╛рдп рд╕рдм, рдореИрдВ рдЗрд╕рдХреЗ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд╡рдЬреВрдж рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ matplotlib + рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВред

plt.show() рдпрд╛ flush_figures() , рдпрджрд┐ рдиреЛрдЯрдмреБрдХ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛), рддреЛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдиреЛрдЯрдмреБрдХ рд╕рд╣реЗрдЬреЗрдВ рдХреЗ рд╕рд╛рде рднреА рдЖрдВрдХрдбрд╝рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрди рд╢рдорди рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддрдм рднреА рдХрдИ рдкреНрд▓реЙрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╣реИ? рдХрд░реНрдиреЗрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рднреА рдпрд╣реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ ipywidgets рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдВрдХрдбрд╝реЗ рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдПрдХ рдЧреИрд░-рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рднреВрдЦрдВрдб рдХреЗ рд╕рдорд╛рди рдиреЛрдЯрдмреБрдХ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рдПрдЧреА, рдЬреЛ рдХрд╛рдлреА рдЖрд╕рд╛рди рдереАред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдпрд╛ рдпрджрд┐ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред ipywidgets 6.0.0, matplotlib 2.0.2, рдиреЛрдЯрдмреБрдХ 5.0.0, рдФрд░ рдкрд╛рдпрдерди 3.6.1 рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

frenzymadness picture frenzymadness  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

peter-ch picture peter-ch  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ederag picture ederag  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ