x3d ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ jupyter ๋
ธํธ๋ถ์์ ํ ์ฅ๋ฉด์ ์ฐจ๋ก๋ก ํ๋กฏํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? (Out[8]์ ๋ฉ์ฌ ์ค์์ Out[2]์ ๋ฉ์ฌ๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.)
์ถ์ : ๊ทธ๊ฒ ์ค์ํ ์๋ ์์ต๋๋ค. ์ ๋ VirtualGL์ ์๊ฒฉ ์ปดํจํฐ์์ jupyter ๋ ธํธ๋ถ ์๋ฒ๋ฅผ ์คํํ๊ณ ์์ต๋๋ค.
์ ์ ์ ์ ๊ทธ๋ฆผ์ ๋ง๋ค์ด ๋ณด์ จ์ต๋๊น?
๋๋ ์ค๊ฐ์ ์ด๊ฒ์ mlab.clf()
ํ๊ณ ๋์์ด ๋์์ต๋๋ค. ๋ ์ด์ ์ธํฐ๋ฆฌ๋น์ด ํ์ํ์ง ์์ต๋๋ค.
@GaelVaroquaux ๊ฐ์ฌํฉ๋๋ค!
๋ฒ๊ทธ์ธ๊ฐ์ ์๋๋ฉด ๊ธฐ๋ฅ์ธ๊ฐ์? ์ด์ ๋ชจ๋ ์คํฌ๋ฆฝํธ์์ ๊ทธ๋ฆผ์ ์ง์์ผ ํฉ๋๊น?
@thoth291 -- ์ด๊ฒ์ ๋
ธํธ๋ถ ์์ด ๋ณผ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. mlab
๋ ํ๋ฉด์ ์๋์ผ๋ก ์ง์ฐ์ง ์์ผ๋ฉฐ ์ง์ ์ํํด์ผ ํฉ๋๋ค. BTW, VirtualGL์ ์ฌ์ฉํ ์ค์ ์ด ๊ถ๊ธํฉ๋๋ค. ์ด๋ค ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๊ฒฉ ์์คํ
์์ VirtualGL์ ์ด๋ป๊ฒ ์ค์ ํ์ต๋๊น? ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ์ ์ฉํ ๊ฒ์ด๋ฉฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ฉด ๋ฌธ์์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ ๋ฌธ์ ๊ฐ ์๋๋ผ mlab์ด ์๋ํ๋ ๋ฐฉ์์ด๋ฏ๋ก ์ง๊ธ์ ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
๋ถํํ๋ ๋๋ ์ค์ ์ ํ ์ฌ๋์ด ์๋๋๋ค.
์ ๊ฐ ๋งํ ์ ์๋ ๊ฒ์ 60๊ฐ์ ์ฝ์ด, ์ถฉ๋ถํ RAM ๋ฐ ์ฐ์ํ GPU๊ฐ ํ์ฌ๋ HPC Intel ์์คํ
์ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. ์ฌ๋ฌ vnc ์๋ฒ๊ฐ ์คํ๋๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ Tigervnc๋ฅผ ์ฌ์ฉํ๊ณ VirtualGL ๋ฐฑ์๋๋ก ์ค์ ํ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค. vnc ํด๋ผ์ด์ธํธ์ ์๋ ๋์ ์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ์คํํ์ฌ OpenGL์ ๊ฐ๋ก์ฑ๊ณ VirtualGL๋ก ๊ต์ฒดํด์ผ ํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ vnc3d๋ผ๊ณ ํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ์คํํฉ๋๋ค.
vnc3d jupyter notebook
์ด ์ค์ ์ ์ฐ๋ฆฌ์๊ฒ ์๋ฒฝํ๊ฒ ์๋ํ๋ฉฐ ์ฑ๊ฐ์ ์ ์ผํ ์ ์ OpenGL์ ๋ค๋ฃฐ ๋๋ง๋ค ์ด vnc3d ์คํฌ๋ฆฝํธ๋ฅผ ๋ช ๋ น ์์ ์ถ๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค...
@prabhuramachandran , Jupyter ์ฌ์ฉ์์๊ฒ๋ ์ด๊ฒ์ด ์ง๊ด์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ต์ํ ์ฌ๋ฐ๋ฅธ ๋ ๋๋ง์ ๋ณด์ฅํ๊ธฐ ์ํด ์ด๋ฅผ ์ํํด์ผ ํจ( mlab.clf()
)์ ๋ช
์์ ์ผ๋ก ๋ฌธ์ํํด์ผ ํฉ๋๋ค. 3D ์์ง(Jupyter์ฉ) ์ค ์ด๋ ๊ฒ๋ ์ด๋ฐ ์ข
๋ฅ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@prabhuramachandran , Jupyter ์ฌ์ฉ์์๊ฒ๋ ์ด๊ฒ์ด ์ง๊ด์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ๊ฐ์ ๋๋์ ๋๋ค.
@thoth291 -- VirtualGL ์ค์ ์ ๋ํ ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ๋งค์ฐ ํฅ๋ฏธ๋กญ๊ณ ์ ์ฉํด ๋ณด์
๋๋ค. mlab.clf()
์ ๊ด๋ จํ์ฌ ํผ๋์ค๋ฌ์ด ๋์์ธ์ง ํ์คํ์ง ์์ง๋ง ์ด๊ฒ์ ๋ฌธ์ํํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ด๊ฒ์ mlab ๋ช
๋ น์ ์ฌ์ฉํ ๋ค์ mlab.savefig
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค. ์๋ง๋ ํผ๋์ค๋ฌ์ด ๊ฒ์ ์ฌ์ฉ์๊ฐ ํ ์
์์ plt.plot()
๋ฅผ ์ํํ๊ณ ๋ค์ ์
์ด์ ์ clf()
๋ฅผ ์ํํ ํ์๊ฐ ์๋ ๋
ธํธ๋ถ ์ฌ์ฉ์ ๊ด์ ์์ ๋ณผ ๋ ์ด๋ก์ ์ด๋ผ๋ ๊ฒ์
๋๋ค. ๋ด๊ฐ ํ ์ ์๋ ์ผ์ ์ฅ๋ฉด์ด PNG ๋๋ X3D ์ถ๋ ฅ ์
๋ก ๋ณํ๋ ํ mlab.clf()
๋ฅผ ์๋์ผ๋ก ํธ์ถํ๋ ๊ฒ์
๋๋ค. ๋์์ด ๋ ๊น์?
๋ค, ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์ํํ ์์ ์ ์ ์ํ ์ ์์ ๋ init_notebook ํธ์ถ์ ์ ์ธ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ๋ง์ mlab ์ฌ์ฉ์๊ฐ ๊ทธ๋ฆผ์ ์ธํฐ๋ฆฌ๋นํ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ์ด๋ผ๊ณ ์์ํ ์ ์์ง๋ง(์ ์ฐจ์ ์ผ๋ก ์ฅ๋ฉด์ ๊ตฌ์ถํ ์ ์๋๋ก) ๊ธฐ๋ณธ ๋์์ ๊ฐ ์ ์ ๋ํด ๋ ๋ฆฝ์ ์ธ ๊ทธ๋ฆผ์ ๊ฐ๋ ๊ฒ์ด์ด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด ๋ซํ ๋ฌธ์ ์ ์ถ๊ฐํด์ ์ฃ์กํ์ง๋ง ํ๋ก์ ํธ์ ํผ๋๋ฐฑ์ ์ค ์ ์๋ ์ข์ ๊ธฐํ๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ฐฉ๊ธ x3d๋ฅผ ์ฌ์ฉํ์ฌ jupyter ๋
ธํธ๋ถ ํตํฉ์ ํ
์คํธํ์ผ๋ฉฐ ๋ช ๊ฐ์ง ๋ธ๊พน์ง ํ์ ์๋ํ๋๋ก ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ @thoth291 ๊ณผ ๊ฐ์ ๋๋์ ๋ฐ์์ต๋๋ค. Mayavi๊ฐ ์๋ฌต์ ์ผ๋ก ์ ์
์ ๋ํ ์ ๊ทธ๋ฆผ์ ์์ฑํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ์ด๊ฒ์ด %matplotlib ์ธ๋ผ์ธ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ๋ matplotlib์ ๊ธฐ๋ณธ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์์ํ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์ฃผ์ฅํ ์ ์์ต๋๋ค. %matplotlib ๋
ธํธ๋ถ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ ๋ช
์์ ์ผ๋ก ๊ทธ๋ฆผ์ ์์ฑํด์ผ ํฉ๋๋ค(๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ธฐ ์์
์ ์ด์ ์ ์ด๋ฆฐ ๊ทธ๋ฆผ์ผ๋ก ์ํ๋๋ฉฐ, ๋๋๋ก ์ฌ์ฉ์์๊ฒ ๋๋ผ์ด ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํจ).
์์ฝํ์๋ฉด ๋ค๋ฅธ matplotlib ๋ฐฑ์๋๋ ์ ๊ทธ๋ฆผ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ ๋ค๋ฅด๊ฒ ๋์ํฉ๋๋ค. ์ฌ์ฉ์์ ์ ์ฅ์์๋ ์ซ์๊ฐ ์ ์ ๋ฌถ์ฌ ์์ผ๋ฉด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ %matplotlib ๋ ธํธ๋ถ ์ ์์ ๋ฐ๋ฅด๋ฉด ๋ค์ ์ํฌํ๋ก๋ฅผ ๋ฐ๋ฅผ ์ ์์ต๋๋ค.
fig = mlab.figure() # create new figure
s = mlab.test_triangular_mesh() # draw something on it
fig # display figure
์ด๊ฒ์ ์ค์ ๋ก ์๋ํ๋ฏ๋ก jupyter ๋ ธํธ๋ถ์ ๋ฌธ์ํํ๋ ํ ๋ฐ ํธ๋ฆญ ์น์ (http://docs.enthought.com/mayavi/mayavi/tips.txt)๊ณผ ํจ๊ป ์ด ์์ ๋ฐฉ์์ผ๋ก ์์ ๋ ธํธ๋ถ์ ํ์์ ๋ค์ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. HTML).
์ด์จ๋ ์ด ๋ฐฑ์๋๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ด ๋๋จํ๋ค๊ณ ์๊ฐํ๋ค๊ณ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค. @prabhuramachandran @GaelVaroquaux ์ ๋ ธ๊ณ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์น์ ํ๋,
ํ๋ก๋ฆฌ์
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด ๋ซํ ๋ฌธ์ ์ ์ถ๊ฐํด์ ์ฃ์กํ์ง๋ง ํ๋ก์ ํธ์ ํผ๋๋ฐฑ์ ์ค ์ ์๋ ์ข์ ๊ธฐํ๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ฐฉ๊ธ x3d๋ฅผ ์ฌ์ฉํ์ฌ jupyter ๋ ธํธ๋ถ ํตํฉ์ ํ ์คํธํ์ผ๋ฉฐ ๋ช ๊ฐ์ง ๋ธ๊พน์ง ํ์ ์๋ํ๋๋ก ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ @thoth291 ๊ณผ ๊ฐ์ ๋๋์ ๋ฐ์์ต๋๋ค. Mayavi๊ฐ ์๋ฌต์ ์ผ๋ก ์ ์ ์ ๋ํ ์ ๊ทธ๋ฆผ์ ์์ฑํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ์ด๊ฒ์ด %matplotlib ์ธ๋ผ์ธ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ๋ matplotlib์ ๊ธฐ๋ณธ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์์ํ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์ฃผ์ฅํ ์ ์์ต๋๋ค. %matplotlib ๋ ธํธ๋ถ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ ๋ช ์์ ์ผ๋ก ๊ทธ๋ฆผ์ ์์ฑํด์ผ ํฉ๋๋ค(๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ธฐ ์์ ์ ์ด์ ์ ์ด๋ฆฐ ๊ทธ๋ฆผ์ผ๋ก ์ํ๋๋ฉฐ, ๋๋๋ก ์ฌ์ฉ์์๊ฒ ๋๋ผ์ด ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํจ).
์์ฝํ์๋ฉด ๋ค๋ฅธ matplotlib ๋ฐฑ์๋๋ ์ ๊ทธ๋ฆผ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ ๋ค๋ฅด๊ฒ ๋์ํฉ๋๋ค. ์ฌ์ฉ์์ ์ ์ฅ์์๋ ์ซ์๊ฐ ์ ์ ๋ฌถ์ฌ ์์ผ๋ฉด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ %matplotlib ๋ ธํธ๋ถ ์ ์์ ๋ฐ๋ฅด๋ฉด ๋ค์ ์ํฌํ๋ก๋ฅผ ๋ฐ๋ฅผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ์๋ํ๋ฏ๋ก jupyter ๋ ธํธ๋ถ์ ๋ฌธ์ํํ๋ ํ ๋ฐ ํธ๋ฆญ ์น์ (http://docs.enthought.com/mayavi/mayavi/tips.txt)๊ณผ ํจ๊ป ์ด ์์ ๋ฐฉ์์ผ๋ก ์์ ๋ ธํธ๋ถ์ ํ์์ ๋ค์ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. HTML).
์ด์จ๋ ์ด ๋ฐฑ์๋๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ด ๋๋จํ๋ค๊ณ ์๊ฐํ๋ค๊ณ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค. @prabhuramachandran @GaelVaroquaux ์ ๋ ธ๊ณ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์น์ ํ๋,
ํ๋ก๋ฆฌ์