jupyterããŒãããã¯ã§ã¯ã %matplotlib inline
ã¯æ°ããipywidgets 6.0 @interact
ã§ã¯ããŸãæ©èœããªãããã§ãã ç§ãç¥ãéããã€ã³ã©ã€ã³ããã¯ãšã³ãã¯ãã»ã«ãå®å
šã«çµäºãããŸã§åŸ
æ©ããŠãããç»åãšãšãã«display_dataã¡ãã»ãŒãžãéä¿¡ããŸãïŒhttps://github.com/ipython/ipython/blob/7cde22957303ab53df8bd464ad5d7ed616197f31/ã§ç»é²ãããŠããå®è¡åŸã®ããã¯ãåç
§ããŠãã ããïŒã IPython / core / pyrabtools.pyïŒL383ïŒã ipywidgets 6.0ã§ã¯ãã€ã³ã¿ã©ã¯ã·ã§ã³ã®åäœæ¹æ³ãå€æŽããŠããã£ããã£ããåºåãããå
·äœçã«ããŸãããé¢æ°ã®å®è¡äžã«éä¿¡ãããåºåã¡ãã»ãŒãžããã£ããã£ããããããã€ã³ã¿ã©ã¯ãã£ãåºåã«è¡šç€ºããŸãã ãã ããmatplotlibã€ã³ã©ã€ã³ããã¯ãšã³ãã¯é¢æ°ã®å®è¡åŸã«ç»åãéä¿¡ãããããã»ã«ã®åºåé åã«èšå€§ãªäžé£ã®ç»åã衚瀺ãããŸãã
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()
CC @ SylvainCorlay ã@ tacaswellã
ããã¯ããŸãããããã§ããã誰ããããè¯ãæ¹æ³ã®è§£æ±ºçãæã£ãŠããŸããïŒ
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()
ã€ã³ã©ã€ã³mplããã¯ãšã³ãã«åãçµãã CC @ minrk ã
ç§ãã¡ã«ã§ããããšã¯ããŸããªããšæããŸãã
å³ã衚瀺ããããã«ã©ã®ãã¥ãŒãªã¹ãã£ãã¯ã䜿çšããŸããïŒ å€ãã®ã³ãŒãåå©çšãã£ã®ã¥ã¢ã®ããã«ãã£ã®ã¥ã¢ãæŽæ°ããããšã¯ã§ããŸããããã¢ãã¡ãŒã·ã§ã³ã䜿çšããã®ãäžè¬çã§ãã
åæäœã®åŸã«ãã©ãã·ã¥ããç¹å¥ãªã±ãŒã·ã³ã°@interact
ïŒ
åæäœã®åŸã«ãã©ãã·ã¥ããç¹å¥ãªã±ãŒã·ã³ã°@interact ïŒ
è¯ãç¹ãææ¡ãããããšãã ãããè¡ãã®ã¯ããŸããããã§ã¯ãããŸããïŒmatplotlibã®ç¹å®ã®ããã¯ãšã³ãã®ç¹å¥ãªå ŽåïŒã äžèšã®äŸã®ããã«ããŠãŒã¶ãŒãåºåãæ瀺çã«ãã©ãã·ã¥ããããšã倧ããªåé¡ã§ãããã©ããã確èªããã®ãåŸ ã€ãããããŸããã ã€ãŸããæ瀺çã¯æé»çãããåªããŠããŸã...
ç·šéïŒèŠçŽãããšãç§ãã¡ãã§ããïŒãŸãã¯ãã¹ãïŒããšã¯ããŸããªãããšã«åæãããšæããŸã...
ããã¯ç§ãæã£ãŠãããããã¯ããã«ç°¡åã§ããããšãããããŸãã-以åã«ããããã¹ãããããšãããšãã«äœãééã£ãããšãããã«éããããŸããã flush_figuresãåŒã³åºãå¿ èŠã¯ãããŸãããæšæºã®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()
ã€ã³ã¿ã©ã¯ã·ã§ã³ã«showïŒïŒã³ãã³ããæ¿å ¥ããããã«äŸé Œããã®ã¯å®å šã«åççã ãšæãã®ã§ããããçµäºããŸãã
ãã®åäœïŒããã³ãã®ä»ã®æœåšçãªå®è¡åŸã®åºåïŒãç¶æãããå Žåã¯ãåºåã®ãã£ããã£ãå®äºããåã«ã察話ã§XåŸã®ããã¯ãæ瀺çã«åŒã³åºãããšãã§ããŸããïŒ äžè¬ã«ãã€ã³ã¿ã©ã¯ã·ã§ã³ãä»ããŠé¢æ°ãåŒã³åºãããšã«å¯Ÿããç§ã®æåŸ ã¯ãã»ã«å ã§é¢æ°ã1ååŒã³åºããå ŽåãšãŸã£ããåãããã«åäœããããšã§ãã
'interactive' matplotlibã¯äžè¬ã«plt.showãäžèŠã§ããããšãæå³ãããããinteract-with-matplotlibã®äŸã®ãã¹ãŠã«é©ããŠæ°åã衚瀺ãããªããªãããšãæåŸ ããŸãã ãããã€ã³ã¿ã©ã¯ãã£ããªé¢æ°ã«å ¥ããŠããããããããã¯å€ãããªãã¯ãã§ãã
IOThreadãå°å
¥ãããåã«ãåºåã衚瀺ããããã«sys.stdout.flush()
ãå¿
èŠã§ããããšãå°ãæãåºãããŸãã ç©äºãã©ã®ããã«æ©èœããããèãããšãã«ãªããããå¿
èŠãªã®ãŠããŸãããããã¯äººã
ãæåŸ
ããããã«åäœããªãã£ãã®ã§ãããã»ã©é©ãããšã§ã¯ãããŸããã§ããã
å®è¡åŸã®ãã¹ãŠã®ãã³ãã©ãŒãèªåçã«å®è¡ããå¿
èŠã¯ãªããšæããŸãïŒå®è¡åŸã®ãã³ãã©ãŒãäœããããã¯èª°ã«ãããããŸãããããããããããã®ããšã§ãïŒïŒã flush_display
ããã¯ãæã£ãŠããã®ã¯ã©ãã§ããïŒ ã€ã³ã¿ã©ã¯ã·ã§ã³ãéå§ããåã«ãã©ãã·ã¥ããçµäºããçŽåã«å床ãã©ãã·ã¥ããŸãã ããããã°ãstdout / stdinã®ãã©ãã·ã³ã°ãšãŸã£ããåãã§ãã
ãããšããããã¯ãã®äžæ¹ã§ãçžäºäœçšãæ¬åœã«åäžã®ã»ã«ã®ããã«æ©èœããŠãããšèãããªããå®è¡åŸãšåŒã¶ã®ã¯çã«ããªã£ãŠãããããããŸããã ãã ããã€ã³ã¿ã©ã¯ã·ã§ã³ãä»ã®ãã®ãšã®ã»ã«å ã«ãã£ãå Žåã«åããŠãã€ã³ã¿ã©ã¯ã·ã§ã³ãå®è¡ãããåãšå®è¡ãããåŸã®äž¡æ¹ã§ãå®è¡åŸãåŒã³åºãããšããå§ãããŸãã
äŒè©±ããŸã éããããŠããªãã®ã§ãåéããŸã...
ç§ã¯flush_displayããã¯ã®ã¢ã€ãã¢ã奜ãã§ãçè«çã«ã¯æ©èœããŸãããæ°ããããã¯ãå®çŸ©ããŠããã¯ãšã³ãã䜿çšã«åãæ¿ããã«ã¯ãipythonãipykernelãipywidgetsã®èª¿æŽããããªãªãŒã¹ãå¿ èŠã«ãªããŸãã
çžäºäœçšãæ¬åœã«åäžã®ã»ã«ã®ããã«æ©èœããããšãèãããšã
ããã圌ãã®éµã ãšæããŸãããããŠããã¯å€§ããªããããã§ãã ããã¯ç§ããããã©ãæããã§ãããç§ã¯ïŒãŸã ïŒå šå¡ã§ã¯ãããŸããã
fç§ãã¡ã¯çžäºäœçšãæ¬åœã«åäžã®çŽ°èã®ããã«æ¯ãèããšèããŠããŸã
ããã圌ãã®éµã ãšæããŸãããããŠããã¯å€§ããªããããã§ãã ããã¯ç§ããããã©ãæããã§ãããç§ã¯ïŒãŸã ïŒå šå¡ã§ã¯ãããŸããã
ããã«ã€ããŠçŽããããã®ã¯ãã³ãŒãä»ãã®ã»ã«ãã€ã³ã¿ã©ã¯ã·ã§ã³å®è¡ãããã«ããã€ãã®ã³ãŒããããå Žåãã»ã«ã¯å®éã«ã¯3ã€ã®ã»ã«ã®ããã«å®è¡ãããïŒã€ãŸããå®è¡åŸã®å®è¡ã¯3åç°ãªãïŒãšããããšã§ãã ãã®å Žåãflush_displayã®æ¹ãçã«ããªã£ãŠãããšæããŸãã
è¿œå ã®è³ªåïŒJLabã®ãã©ãŒãªã³ã°ãããåºåã¯æ©èœããŸããïŒ
@willingcãŠã£ãžã§ããã¯ãã©ãŒãªã³ã°ãããåºåã§åäœããŸãã
@SylvainCorlayç§ã¯åœŒããä»
éšé³ã§ããããªããã
é·æçã«ã¯ãããããŸãæ©èœããã¯ãã®ã¢ãããŒãã¯ãmatplotlibãžã®ipymplãŠã£ãžã§ããããã¯ãšã³ãã ãšæããŸãã
ãã ããããããã¹ãŠãconf.dãªã©ã§ããç°¡åã«ã€ã³ã¹ããŒã«ã§ããããã«ããå¿ èŠããããŸã...
ã¯ãããã©ãŒãªã³ã°ãããåºåã¯ãäžèšã§èª¬æããå€æŽã§æ©èœããã¯ãã§ãã 確èªããŠããã ãããããšãããããŸãïŒ
ããã«ã€ããŠçŽããããã®ã¯ãã³ãŒãä»ãã®ã»ã«ãã€ã³ã¿ã©ã¯ã·ã§ã³å®è¡ãããã«ããã€ãã®ã³ãŒããããå Žåãã»ã«ã¯å®éã«ã¯3ã€ã®ã»ã«ã®ããã«å®è¡ãããïŒã€ãŸããå®è¡åŸã®å®è¡ã¯3åç°ãªãïŒãšããããšã§ãã
確ãã«ãããã¯å°ãå¥åŠã§ãããã ã§ã2åãããªãã§ããïŒ 1ã€ã¯ã»ã«å
šäœçšã§ããã1ã€ã¯ã€ã³ã¿ã©ã¯ã·ã§ã³ã®æåã®åŒã³åºãçšã§ããïŒ èãæ¹ã«ãã£ãŠã¯ããããçã«ããªã£ãŠããŸãã @interact
ã䜿çšãããšã2ã€ã®å®è¡ããããŸãã1ã€ã¯å®£èšçšã§ããã1ã€ã¯interacted-withé¢æ°ã®æåã®åŒã³åºãçšã§ãã
ããšãã°ã @interact_manual
ã䜿çšããå Žåãè€æ°ãããšã¯æããŸããïŒããããŸããïŒã
ã§ã2åãããªãã§ããïŒ 1ã€ã¯ã»ã«å šäœçšã§ããã1ã€ã¯ã€ã³ã¿ã©ã¯ã·ã§ã³ã®æåã®åŒã³åºãçšã§ããïŒ
ãã®ã³ãŒããæ€èšããŠãã ããïŒ
plt.plot([1,2,3])
@interact(n=(1,10))
def f(n):
plt.plot([1,n])
plt.plot([4,5,6])
ããããã¯çŽ¯ç©çã§ãããã€ã³ã¿ã©ã¯ã·ã§ã³ãããèªäœãšã¯å¥ã®ã»ã«ãšããŠæ±ãããã®ã§ãã€ã³ã¿ã©ã¯ã·ã§ã³ãå®è¡ããåã«å³ããã©ãã·ã¥ãã次ã«ã€ã³ã¿ã©ã¯ã·ã§ã³å ã®å³ããã©ãã·ã¥ãã次ã«ã»ã«ã®æåŸã§ããäžåºŠãã©ãã·ã¥ããå¿ èŠããããŸãã ããã¯ãŸãã«ç§ãã¡ãstdoutããã©ãã·ã¥ããããšã§è¡ãããšã§ãã
å®éãäžèšã®äŸã§ãŠãŒã¶ãŒãäœãæåŸ ããŠããã®ãããããŸããã ããªãã¯äœãæåŸ ããŸããïŒ
èããŠã¿ãŠãã ãããäžèšã®äŸã¯ããŸãè«ççã§ã¯ãããŸããã å人çã«ã¯ã1ã€ã ããåçã«å€åãã3ã€ã®ãããããæåŸ
ããŸããããã®ãããªããšãè¡ãå Žåã¯ã @interact
å
ã§ãã¹ãŠã®ããããåŒã³åºããå®è¡ããŸãã
å.plot()
åŸã«flush_figures
ãåŒã³åºããªãçç±ã¯ãããŸããïŒ
@myycããã¯åäœã®éèŠãªã»ãã³ãã£ãã¯å€æŽã§ãã plot
ã¯ãããããã«ã¢ã€ãã ãè¿œå ããŸãã
ç§ã¯ãmatplotlibãšã¯å¯Ÿç
§çã«ãç¹å®ã®ipython
ã€ã³ã©ã€ã³åäœãæå³ããŸããã
ç·šéïŒäžèšã®å Žåãšã¯å¯Ÿç §çã«ãã»ã«ããšã«1ã€ããå¯äžã®ããããé¢æ°ããšããŠçžäºäœçšãããæ¹ãããäžè¬çãªäœ¿çšäŸã§ãããšç¢ºä¿¡ããŠããŸã...
ããããŸããã ç§ã¯ãããããã»ã©ç°ãªãæ¯ãèããæã€ã¹ãã§ã¯ãªããšæããŸããã
å°æ¥ã®é©åãªã¢ãããŒãã¯ãããããããŒãããã¯ã®ããã¯ãšã³ããŸãã¯ipymplã䜿çšããŠå³ãç·šéããããšã§ãã
ipywidgetsã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã§ã€ã³ã©ã€ã³ããã¯ãšã³ãã«matplotlibåºæã®åé¿çãå®è£ ããããšã¯æ£ãããªãããã§ãã
jasonã«ãã£ãŠäžããããã³ãŒãã§ã¯ïŒ
plt.plot([1,2,3])
@interact(n=(1,10))
def f(n):
plt.plot([1,n])
plt.plot([4,5,6])
æåŸ ãããåºåã¯ãç·ã®å€ãå³ã§ãã
ã¯ããç§ã¯å®å
šã«åæããŸãã ç§ã¯ããŒã«ã«ã»ããã¢ããã§äžæçã«ãã®ããã«ä¿®æ£ããŸããïŒãã³ãã®ããããã¡ãœããããªãŒããŒã©ã€ãããŸãïŒããä¿®æ£ãåŸ
ã£ãŠããŸãã:)ãããç¡èŠãããšãã²ã©ãå¯äœçšãããããçºçããŸãã
ãã®åé¡ãããŸããŸãªgithubãããžã§ã¯ãã§çºçããŠããã®ãèŠãŠããã®ã§ãæé©ãªè§£æ±ºãã¹ã¯ã©ãããã¹ããçåã«æã£ãŠããŸãã
ç·šéïŒãããªãããã®ããã«æžããŠã¿ãŸãããïŒ
@interact(n=(1,10))
def f(n):
plt.plot([1,2,3])
plt.plot([1,n])
plt.plot([4,5,6])
matplotlibãŠã£ãžã§ããã§ããipymplããã±ãŒãžïŒhttps://github.com/matplotlib/jupyter-matplotlibïŒããã§ãã¯ã¢ãŠãã§ããŸãã ipymplã¯ãŸã ããªãåæ段éã§ãããmatplotlibã³ã¢ããããªãªãŒã¹ã¹ã±ãžã¥ãŒã«ãéããjupyterlabãªã©ã®ãµããŒããæ©ãã¯ãã§ã...
OKã¯ããªãŒããŒã©ã€ããã²ã©ãèãã§ããããšãããããŸããã ã¢ããã¹ããªãŒã ã§ã®ä¿®æ£ã楜ãã¿ã«ããŠããŸã:)
æè²ãåããŠããªããŠãŒã¶ãŒã®èŠç¹ã«è²¢ç®ããããã ãã«ã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])
ã¹ã©ã€ããŒãåãããŸãã ããããã¯ã»ã«ã«è¿œå ãããŸã-å®è¡åŸã®ããã¯ã衚瀺ããŒã¿ã¡ãã»ãŒãžãéä¿¡ããŠããŸãã ã€ã³ã¿ã©ã¯ã·ã§ã³ã®å®è¡ã¯ãå®éãé¢æ°ã®åŒã³åºãäžã«çºçããåºåã®ã¿ããã£ããã£ããããšã«ãã ãã£ãŠããŸãã ãããæ£ããããšã ãšæããŸãã ããšãã°ã2ã€ã®ç°ãªãã€ã³ã¿ã©ã¯ã·ã§ã³ããŸã£ããåãã¹ã©ã€ããŒã€ã³ã¹ã¿ã³ã¹ãå ±æããå ŽåããããŸãã
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ã§ïŒåŸ®èª¿æŽãããšãäž¡æ¹ã®å¯Ÿè©±ã§ã¹ã©ã€ããŒã移åããŠããããšã瀺ãããäž¡æ¹ã®å¯Ÿè©±é¢æ°ãåãå®è¡åŒã³åºãã§å®è¡ãããŸãã äž¡æ¹ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãå®è¡åŸã®ããã¯ããã®åºåããã£ããã£ããããšããã®ã¯ééã£ãŠããŸãã ããã§ã®æ¬ ç¹ã¯ãå®è¡åŸã䜿çšããŠåºåãçæããŠããããšã§ãããããã¯ãã³ããŒãšããŠã¯ç²ãããããšã ãšæããŸãã ã³ãŒãã®ãããã¯ã§çæãããåºåããã©ãã·ã¥ããããã®ãããã现ããã¡ãœãããå¿ èŠã§ããããã¯ã1åã®å®è¡ã§è€æ°ååŒã³åºãããå¯èœæ§ããããŸãã
ã³ãŒãã®ãããã¯ã§çæãããåºåããã©ãã·ã¥ããããã®ãããã现ããæ¹æ³ãå¿ èŠã§ã
matplotlibããããã®å Žåããã®ãã©ãã·ã¥ã¯plt.show
å®è¡ãããšãã«çºçããŸã
ãã®ãããªåŒã³åºããã©ãã«è¿œå ãããã«ã€ããŠã¯ãéåžžã«æ³šæããå¿ èŠããããŸãã ãããããã«åŒã³åºããšãåŸã®ããããã衚瀺ãããªãããšãããããã§ãã
ç§ã¯ãããèµ·ããäŸãèŠãããšã«æ¬åœã«èå³ããããŸãã åäœãçŽæçã§ç解ãããããã®ã«ããããšèããŠããŸãã
ãã®ãããªåŒã³åºããã©ãã«è¿œå ãããã«ã€ããŠã¯ãéåžžã«æ³šæããå¿ èŠããããŸãã ãããããã«åŒã³åºããšãåŸã®ããããã衚瀺ãããªãããšãããããã§ãã
ç§ã¯ãããèµ·ããäŸãèŠãããšã«æ¬åœã«èå³ããããŸãã åäœãçŽæçã§ç解ãããããã®ã«ããããšèããŠããŸãã
詳述ãããšãç§ã¯ããªãã ãè¿œå ããããšã«ããã以åã®åäœã«çžåœãååŸããããšãã§ããã¯ãã ãšæãplt.show()
ãããããã£ãŠããä»»æã®çžäºäœçšã®é¢æ°ã®æåŸã®è¡ãšããŠã ãããæ©èœããªãäŸãèŠãããšã«éåžžã«èå³ããããŸãã
@jasongroutãããèŠãŠãããŠããããšãã ç§ããããæã£ãŠããã³ãŒãã¯ããªãè€éã§ãããç§ãäœãä»ã®ããšãããŠããå¯èœæ§ããããŸãã ããäžåºŠèŠããããããåé¢ããŠäŸã瀺ããŸãã
@jasongroutããå°ãæãäžããåŸãç§ãééããã®ã¯ããŠã£ãžã§ããã§ã¯ãªããJupyterããŒãããã¯èªäœã®ããããã£ã ãšæããŸãïŒãã ãã 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
ããã¯ãšã³ãã®ãªã2ã€ã®ã»ã«ã ãããã@tacaswellã¯ã2çªç®ã®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()
äœã衚瀺ãããªã
ç§ã®ãã·ã³ã§ææ°ã®å®å®ããjupyterãipythonãipywidgetsãmatplotlibãpython3ã§ç¢ºèªãããŸããã
ããã§ã確èªããŸããã
@jasongroutããã¯ãæåã®ã»ã«ã§å³ïŒããã³ãã£ã³ãã¹ãšè»žïŒãäœæããŠãã衚瀺ãããããäºæ³ãããåäœã§ãã 次ã«ã2çªç®ã®ã»ã«ã§ãæ¢åã®è»žïŒæ¢åã®å³ïŒã«ç·ãè¿œå ããŸãã %matplotlib qt
ãŸãã¯ipympl
ïŒãŸãã¯å®å
šãªGUIã®ããããïŒã䜿çšãããšãããããã2è¡ç®ã§æŽæ°ããå¿
èŠããããŸãã æŽæ°ããã·ã§ããã1ã€ãããªãããããããã€ã³ã©ã€ã³ã§æ©èœããããšã¯æåŸ
ã§ããŸããïŒããããç§ãã€ã³ã©ã€ã³ã®ãã¡ã³ã§ã¯ãªãçç±ã§ããã€ã³ã¿ã©ã¯ãã£ãæ©èœã®ãã¹ãŠãç Žæ£ããŸãïŒã
@tacaswellãã®ã€ã³ã©ã€ã³ã®åäœã¯ããã¹ãŠ1ã€ã®ã»ã«ã«ããåã®äŸã§ãæå³ããããŸããïŒ ããã«åã³ãããŸãïŒ
%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
ã§ã¯ãã€ã³ã©ã€ã³ããã¯ãšã³ããèªåèªèº«ãpngã«ã¬ã³ããªã³ã°ããŠãããå³ãpyplotããç»é²è§£é€ããŠãåãã»ã«ã«ããå Žåã§ã次ã®ã·ã§ãŒã§å床ã¬ã³ããªã³ã°ãããªãããã«ãããšæããŸããè¿œå ã®show
䜿çšããã«Axesã¡ãœãããè€æ°ååŒã³åºããšæ©èœããã¯ãã§ãã
æ確ã«ããããã«ãã€ã³ã©ã€ã³ããã¯ãšã³ãã³ãŒãã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
ã€ã³ã¿ã©ã¯ãã£ããŠã£ãžã§ãããåã³æ©èœãããããã«ããŒã«ããã¯ã§ããipywidgets
ããã³/ãŸãã¯matplotlib
ããŒãžã§ã³ã¯ãããŸããïŒ
@jasongroutã³ãŒãããã¯ã InlineBackend.close_figures
ãFalse
ã«èšå®ãããããã§ãã ãããããã®å±æ§ãèšå®ããæ¹æ³ãããããŸãã-ããçš®ã®éæ³ã䜿çšããå¿
èŠããããŸããïŒ
ïŒãã®è³ªåã¯é¢çœããã«èãããŸãããç§ã¯ãããæåéãæå³ããŸãïŒ
https://github.com/jupyter-widgets/ipywidgets/issues/1457ã§ãã®åé¡ãå床çºçããŸããã @ ellisonbg-äžèšã®flush_figuresåé¿çãå®è£ ãããšã©ããªããŸããïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®å®è¡ã®ååŸã«flush_figuresãåŒã³åºããŠãã€ã³ã¿ã©ã¯ã·ã§ã³ã®åã«ããããããã©ãã·ã¥ããã€ã³ã¿ã©ã¯ã·ã§ã³äžã«ããããããããã®ããã¹ãŠãã©ãã·ã¥ããŸããïŒ ã€ã³ã©ã€ã³mplããã¯ãšã³ãã§å®è¡ãããŠãããã©ããã確èªããå¿ èŠããããšæããŸãã
ããã¯å€§ããªå¿æ¥ä¿®çã§ããããšã«ãããããè¡ãã®ã«ååéèŠãããããŸããã ãããããå®éã«ãã£ã®ã¥ã¢ããã©ãã·ã¥ããŠãããã©ãããæ€åºããæ瀺çãªshowïŒïŒåŒã³åºããè¡ãããã«äººã ã«æ±ããèŠåãçºè¡ããããšãã§ããŸããïŒ
ã¿ãªãããããã«ã¡ã¯ãç§ã¯ããã®æè¡çãªè©³çŽ°ã«åŸããªãã£ãã®ã§ãããåé¡ã«ã¶ã€ãããŸããã å®è£ ã®è©³çŽ°ã«é¢ä¿ãªããmatplotlib + interactãå¯èœãªéããæ£ããæ©èœãããããšãéåžžã«éèŠã ãšæããŸãã
plt.show()
ãŸãã¯flush_figures()
ã䜿çšãããšãïŒã«ãŒãã«ãåèµ·åããã«ïŒããŒãããã¯ãæŽæ°ãããšã[ããŒãããã¯ããŠã£ãžã§ããã§ä¿å]ã䜿çšããŠãå³ãæ¶ããŸãã ãããã®ç·©åçããªããã°ãããã¯åœãŠã¯ãŸããŸããããããã§ãè€æ°ã®ããããåºåã®åé¡ããããŸãã ããã¯æå³ããããã®ã§ããïŒ ã«ãŒãã«ãã·ã£ããããŠã³ãããŠããå ŽåãåãããšãåœãŠã¯ãŸããŸãããå€ãããŒãžã§ã³ã®ipywidgetsã§ã¯ãå³ã®æçµç¶æ
ãé察話åãããããšåæ§ã«ããŒãããã¯ã«ä¿åããããããéåžžã«äŸ¿å©ã§ããã
ãããç¯å²å€ã®å ŽåããŸãã¯ç§ãäœãééã£ãããšãããŠããå Žåã¯ç³ãèš³ãããŸããã ipywidgets 6.0.0ãmatplotlib 2.0.2ãnotebook 5.0.0ãããã³python3.6.1ãå®è¡ããŠããŸãã
æãåèã«ãªãã³ã¡ã³ã
ã¿ãªãããããã«ã¡ã¯ãç§ã¯ããã®æè¡çãªè©³çŽ°ã«åŸããªãã£ãã®ã§ãããåé¡ã«ã¶ã€ãããŸããã å®è£ ã®è©³çŽ°ã«é¢ä¿ãªããmatplotlib + interactãå¯èœãªéããæ£ããæ©èœãããããšãéåžžã«éèŠã ãšæããŸãã