Ipython: Pyplot์„ ๊ฐ€์ ธ ์˜ค๋ฉด Mac์—์„œ ๋„ํฌ ์•„์ด์ฝ˜์ด ๋ฐ”์šด์Šค๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 01์›” 08์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipython/ipython

์ด๊ฒƒ์€ ๋‹ค์Œ gif๋กœ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

image

์ผ๋ฐ˜ ํŒŒ์ด์ฌ repl์—์„œ pyplot์„ ๊ฐ€์ ธ ์˜ค๋ฉด ํŒŒ์ด์ฌ ๋กœ์ผ“ ์•„์ด์ฝ˜์ด ๋‚˜ํƒ€๋‚˜์ง€๋งŒ ์‚ฐ๋งŒํ•˜๊ฒŒ ํŠ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IPython ๋‚ด๋ถ€๋กœ ๊ฐ€์ ธ ์˜ค๋ฉด ์•„์ด์ฝ˜์ด ๊ฑฐ์˜ 1 ๋ถ„ ๋™์•ˆ ์„ฑ๊ฐ€ ์‹œ๊ฒŒ ํŠ€์–ด ์˜ค๋ฆ…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Homebrew์˜ Python ํ”„๋ ˆ์ž„ ์›Œํฌ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ ๋ฉˆ์ถ˜ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€๋ณด๊ณ ์žˆ๋Š” ํฌ์ธํ„ฐ๊ฐ€ .gif์˜ ํฌ์ธํ„ฐ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๋Š” ๋ฐ 10 ์ดˆ ๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  10 ๋Œ“๊ธ€

์–ด๋–ค ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? plt.ion() ๋˜๋Š” %matplotlib ๋„์›€์ด ๋˜๋‚˜์š”?

๋‚ด ๋ฌด๋ฆŽ ๋ฉ์ฒญ์ด / ๋‚ด๊ฐ€ ์ถ”์ธก ํ•œ๋Œ€๋กœ ์ด๊ฒƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค .IPython์ด readline์—์„œ ๋ถ„๋ฆฌ๋˜๋ฉด PyOS_InputHook ๊ธฐ๊ณ„์—์„œ๋„ ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ GUI๊ฐ€ ์‹œ์ž‘๋˜๊ณ  (๋ฐ”์šด์Šค ์‹œ์ž‘), GUI ์ฝ”๋“œ๊ฐ€ ํ›„ํฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ , GUI ๋ฉ”์ธ ๋ฃจํ”„๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ผ“์ด ํŠ€๋Š” ๊ฒƒ์„ ์ค‘์ง€ํ•˜๋„๋ก ์ „ํ™”๋ฅผ ์ง‘์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. repl. IPython์—์„œ ํ•ด๋‹น ํ›„ํฌ๋Š” ์—ฌ์ „ํžˆ ์„ค์น˜๋˜์–ด ์žˆ์ง€๋งŒ IPython์ด ํ”„๋กฌํ”„ํŠธ ํˆดํ‚ท์„ ํ†ตํ•ด ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IPython ์ด๋ฒคํŠธ ๋ฃจํ”„ ํ†ตํ•ฉ์„ ์‹œ์ž‘ํ•˜๋ฉด GUI๊ฐ€ ์ง‘์œผ๋กœ ์ „ํ™”๋ฅผ ๊ฑธ์–ด ๋ฐ”์šด์‹ฑ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด ๋‚˜๋Š” ๊ธฐ์ง€๋ฅผ ํฌ๊ฒŒ ๋ฒ—์–ด ๋‚ฌ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

MacOSX ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. pyplot ๊ฐ€์ ธ ์˜ค๊ธฐ ํ›„์— plt.ion() ๋˜๋Š” %matplotlib ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”์šด์Šค๊ฐ€ ์ค‘์ง€๋˜์ง€ ์•Š๊ณ  ํ”Œ๋กฏ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— %matplotlib ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ด์ฝ˜์ด ๋ฐ”์šด์Šค๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

tk ๋ฐฑ์—”๋“œ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, TkAgg ๋กœ์ผ“ ์•„์ด์ฝ˜์ด ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.

# 9312์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. @minrk ํ•‘.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค :

    if not window_count:
        return

์ด๋ฒคํŠธ ๋ฃจํ”„ ํ†ตํ•ฉ์€ ์ฐฝ์ด์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์‹คํ–‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋Œ€์•ˆ์€ inputhook(context) ๊ฐ€ ์ฐฝ์ด์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ ์–ด๋„ ํ•œ ๋ฒˆ์˜ ๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    global at_least_once
    if not window_count and not at_least_once:
        at_least_once = True
        return

@ngoldbaum ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๋˜ํ•œ ๋‚˜๋Š” ๋‹น์‹ ์ด ๋‹น์‹ ์˜ ์ฒซ ๋ฒˆ์งธ ์ฐฝ์ด ์ƒ๊ธฐ ์ž๋งˆ์ž ํŠ€๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ˜๋‹ค ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ™”๋ฉด ๋…นํ™”๋Š” ๋˜ํ•œ ํƒ€์ดํ•‘์ด ํ˜„์‹ค์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ €๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒํ•˜๊ณ , ๋”์ฐํ•œ ํƒ€์ดํ•‘์— ๋Œ€ํ•œ ์ฃ„์ฑ…๊ฐ์„ ๋œ ๋Š๋ผ๊ฒŒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ๊ทธ๊ฒƒ์„ ์ œ๊ฑฐ

if not window_count:
    return

๋ธ”๋ก์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ƒํ–ˆ๋“ฏ์ด ํ”Œ๋กฏ์„ ๋งŒ๋“ค๋ฉด ๋ฐ”์šด์Šค๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

# 10150์„ ์ œ์ถœํ•˜๋ฉด ๋” ๋งŽ์€ ์ž๊ฒฉ์„ ๊ฐ–์ถ˜ ์‚ฌ๋žŒ๋“ค์˜ ๊ฒ€ํ† ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๋‚ด ์ปดํ“จํ„ฐ๊ฐ€ ๋ฉˆ์ถ˜ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€๋ณด๊ณ ์žˆ๋Š” ํฌ์ธํ„ฐ๊ฐ€ .gif์˜ ํฌ์ธํ„ฐ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๋Š” ๋ฐ 10 ์ดˆ ๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰