본문으로 바로가기

Jupyter Notebook은 참 편리한 도구입니다. 마크다운 문서를 사용할 수 있는 것도 그렇고 실행 결과를 바로 볼 수 있는 것과 다시 문서를 읽었을때, Out sessino에 실행 결과를 바로 확인할 수 있다는 정말 많은 장점들을 가지고 있습니다. 이렇게 Jupyter Notebook을 사용하다보면 또 한 가지 작은(^^) 욕심이 생기는데요. 바로 Presentation입니다. Jupyter Notebook의 코드와 결과를 일일이 캡쳐해서 파워포인트에 넣기 귀찮을 때가 있거든요^^ 오늘은 그 이야기를 해볼려고 합니다.~

언제나 그렇듯 Python 세계와 오픈소스 세계에 어디나 존재하는 수많은 고마운 분들(^^) 중 한 분이 또 저렇게 뭔가 멋진 것을 공개했습니다. jupyter2slides[바로가기]라는 이름으로 말이죠^^ 여기에 가서 다운로드를 받던, clone을 하던 나의 PC로 옮겨 놓습니다. 그리고 테스트를 해 보도록 하죠^^

테스트 파일이 필요한데.. 요즘 제가 토요일 마다 강의[바로가기]하고 있는 예제 프로그램 하나를 대상으로 하도록 하겠습니다. 이 강의에서 서울시 범죄 현황을 분석하는 내용이 있는데요. 그 파일을 열어서

먼저 View -> Cell Toolbar -> Slideshow를 선택해 줍니다.

그러면 저렇게 각 셀마다 Slide Type을 지정할 수 있게 됩니다. Slide는 페이지 구성의 기본이구요. 옆 방향으로 진행합니다. Sub-Slide는 Slide에 종속되어서 아래로 진행하게 되구요. 그외 Skip도 있습니다.^^

이제 첫 셀에는 대문을 달아줘야죠~~ 그리고 이 셀의 속성은 RAW NBConvert로 지정해야 합니다.

아... 한 가지 약간 귀찮은 것은 그래프의 결과를 볼때, 슬라이드 화면에 꽉차게 만들어 주기 위해 위 그림처럼 함수로 지정해 주어야 할 듯 합니다. 다른 방법이 있는지 고민해야겠어요^^

이렇게 호출해서 사용하는 거죠^^

이제 본 게임이죠^^ Github에서 받은 코드들이 있는 폴더에서 지금 예제는 static이라는 폴더에 있습니다. 그리고 위 그림처럼

python create_slides.py --file static/test_02.ipynb

이라고 명령을 터미널에서 주면 됩니다.

그러면 정적 HTML 페이지를 만들어 줍니다. 여기서 만약 cp949 codec 어쩌고 하면서 에러 메세지가 나면, create_slides.py 파일을 편집기로 열어서 main()을 

def main():
    """Convert the notebook to slides and then do some cleaning."""
    try:
        output = subprocess.check_output(
            ['jupyter', 'nbconvert', args.file_name, '--to', 'slides', '--reveal-prefix', 'reveal.js-3.1.0',
             '--config', 'static/slides_config.py'], stderr=subprocess.STDOUT).decode('utf-8')
        print(output.rstrip())

        slide_name = output.split(' ')[-1].rstrip()
        with open(slide_name, 'r', encoding='UTF8') as f:
            clean_file = clean_html(f.read())
        with open(slide_name, 'w', encoding='UTF8') as f:
            f.write(clean_file)
        print('Successfully adjusted.')
    except IndexError:
        print('Provide name of the slide.')

와 같이 바꾸어 encoding='UTF-8' 옵션을 잡아주어야 합니다. 그리고나서...

위 그림처럼

python run.py --file static/test_02.slides.html

명령으로 실행하면 됩니다.

그러면 접속해야할 주소가 나타나는데요. 웹 브라우저에서 위에 표기된 주소로 접근하면 됩니다.

그러면 웹 브라우저에서 저렇게 나타나는 거죠.. 우와~~~

제일 위에 현재 위치, 오른쪽 아래에 페이지와 이동 버튼 (물론 스페이스바로 다 진행됩니다.)이 있습니다.

아까 이야기한 그래프~~~

이렇게 화면에 다 나오길 기대한거죠^^

특히 놀라운것은... Folium[바로가기]의 대응인데요. 이렇게 지도가 다 나타납니다. 단순 캡쳐한 그림이 아니니까 그림에 있는 확대, 축소 버튼도 잘 동작합니다.

흠... Portland의 미국에서의 위치가 저기군요... 흠.. 동부일 줄 알았는데... 뭐 아무튼.. 꽤 좋은 도구를 또 하나 알게 된 것 같습니다.~~~ ^^


댓글을 달아 주세요

  1. BlogIcon 드래곤포토 2018.04.25 08:21 신고

    즐거운 하루보내세요 ^^

  2. BlogIcon 공수래공수거 2018.04.25 10:04 신고

    이거 시간날때 한번 따라 해 봐야겠는데요
    될지 안 될지는 모르겠지만..ㅋ

  3. BlogIcon 시골청년v 2018.04.25 10:42 신고

    무엇인가 전문적이고 신기한 작업들을 많이 하십니다 ㅋㅋ

  4. BlogIcon 스티마 2018.04.25 10:52 신고

    코딩프로그램안에 프리젠테이션도구까지 포함되어 있다니,
    애자일 프로그래밍 할 때 도움이 되는 도구같군요.

  5. BlogIcon 귀요미디지 2018.04.25 15:55 신고

    뭔가 신기한거 같네요 ㅎ
    화창한 봄날이네요~
    즐거운 하루 되세요 ^^

  6. BlogIcon IT넘버원 2018.04.26 02:04 신고

    전문가이세요.^^
    오늘도 좋은 하루 보내세요.^^

  7. BlogIcon peterjun 2018.04.26 02:39 신고

    과정을 읽다 보면, ??? 이런 느낌이 들다가
    결과물을 보면... '오호라~~'이런 생각으로 이어지네요. ㅋ

  8. BlogIcon 핑구야 날자 2018.04.26 06:55 신고

    필요한 분들에게 유용한 팁이 되겠네요

  9. 편안한 밤 되세요^^

  10. BlogIcon 북두협객 2018.04.27 07:07 신고

    프로그래밍 프리랜서로 활동하셔도 되겠는데요!

  11. @@ 2018.07.12 14:26 신고

    뭐라고 불러야 할지 모르겠네요 ^^???
    핑크님, 현재 책을 보면서 실습을 하고 있는데요...
    아나콘다도 설치를 했지만, 파이참이 먼저 설치가 되어 있어서 파이참으로 책의 예제들을 실행해 보려고 하는데요.. 주피터같은 툴과는 다르게 파이참은 인터프리터??? 언어의 툴처럼 작동을 하지 않는 것 같습니다.

    음... 그러니깐 궁금한 점은 matplotlib 이걸 파이참에 import를 했는데요
    파이참에서 run을 해도 그래프가 보이지 않음... 파이참 툴에선 추가로 해줘야 하는 작업이 있나요?

    보통 파이참 툴에서 결과는 console 창에 나타난다거나... 결과파일을 txt로 저장한다거나 그런걸 하는듯 하는데요...

    • BlogIcon PinkWink 2018.07.13 16:09 신고

      초창기 (지금은 어떨지 모르겠네요) 파이참과 아나콘다는 정말 충돌이 많았습니다. 그래서 제가 지금 파이참을 사용하지 않는답니다ㅠㅠ. 그래서 답변을 드리기가 조금 어렵네요ㅠㅠ