SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Jupyter Notebook (jupyterhub)で
rubyとグラフ
鹿児島大学学術情報基盤センター
下園幸一
simozono@cc.kagoshima-u.ac.jp
2018/04/11 第20回 K-Ruby 1
Jupyter Notebook 概説(1)
 ジュパイターでもジュピターでもいいみたい
◦ http://youglish.com/search/Jupyter
 経緯
◦ 元々は IPython Notebook
◦ その後、Python だけでなく、Julia , Rにも対応
Julia + Python + R = Jupyter
◦ 現在は、Ruby, Haskell, Scala, node.js 等にも対応
◦ 7つの言語の Juputer Notebook を作る
 https://matsubara0507.github.io/posts/2017-04-24-create-
jupyter-for-seven-lang-part1.html
 Project Jupyter が開発元 ( http://jupyter.org )
2018/04/11 第20回 K-Ruby 2
Jupyter Notebook概説(2)何ができるの?
 一言で言うと「Web上でのPython等言語の
対話的実行環境」
◦ http://techlife.cookpad.com/entry/write-once-
share-anywhare
◦ コードと実行結果と説明文(Markdown)を同時に
扱う
◦ コードとグラフを同一画面で扱う
◦ コードの改変、再実行可能
◦ 全てWeb(ブラウザ)上で
◦ github 等を用いて notebook を共有
 データサイエンス界隈で利用者多数
◦ python + pandas + scipy + matplotlob
◦ 語の分散表現(word2vec)関連では + gensim
2018/04/11 第20回 K-Ruby 3
Jupyter Notebook概説(3)デモ
 非公開
◦ github(gist)に notebookの本体( .ipynb)を
push すると、きれいに表示してくれる
◦ GitLab(CE)でも、それなりに表示してくれる
 私が構築した GitLab(CE)では、グラフが表示され
ない
◦ nbviewer というのを利用すると github 等を
利用しなくてもきれいに表示してくれるらし
いが使ったことない
2018/04/11 第20回 K-Ruby 4
Jupyter Notebook Architecture
 http://jupyter.readthedocs.io/en/latest/architecture/how_jupyter_ipython_w
ork.html より
2018/04/11 第20回 K-Ruby 5
Jupyter Notebook概説(5) 導入
 Anaconda で、python を含め全て入る
◦ Windows/Mac/Linux
◦ データ分析に必要な python パッケージも入
る
◦ パッケージ管理もできる
◦ https://www.anaconda.com/download/
 Anaconda を利用しなくても導入はでき
るが
For new users, we highly recommend installing Anaconda.
(Jupyter Documentation より)
2018/04/11 第20回 K-Ruby 6
Jupyter Notebook概説(6) 今後
 Jupyter Notebook から JupyterLab に進化
◦ 2014年に Jupyter Notebook になる
◦ 2016年から次世代版 Jupyter Notebook として JupyterLab プレ
ビュー公開
◦ 2018/02 ベータ版公開
◦ 正式版は2018年内か?
 操作性向上
 csv, json がきれいに表示されるらしい
https://news.mynavi.jp/article/20180221-587178/
2018/04/11 第20回 K-Ruby 7
Jupyterhub Jupyterlab-hub について
 Jupyter Notebook や JupyterLab は、一人で使用することを想定
◦ サーバに導入して、複数で利用したい(教育環境等)
 Jupyterhub Jupyterlab-hub はユーザ認証機能を付けたもの
◦ サーバのローカルユーザ作成されていれば導入はそこそこ難しくない
◦ LDAP等の場合は… 試していないのでわからない
2018/04/11 第20回 K-Ruby 8
Jupyter Notebook で ruby
 基本的には iruby という Jupyter Notebook
用 ruby kernel を導入すればよい
◦ http://devopspy.com/linux/ruby-kernel-jupyter-
notebook/
◦ https://qiita.com/kozo2/items/8e0cf0d1f5672ac2f
745
 「The Ruby kernel requires ZeroMQ, hence
it’s C and Ruby bindings」で、OS標準の
パッケージとバージョンがあわないとかで
さんざん苦労したような気がするが…忘れ
た
 デモ
2018/04/11 第20回 K-Ruby 9
jupyter notebook の ruby でグラフ(1)
 数種類の方法がある
◦ nyaplot
 動かなかった。ここ数年メンテナンスされていない
◦ rbplotly
 動く
◦ gnuplot
 動く
◦ daru + numo-gnuplot
 動く
◦ daru + daru-plotly
 動く
 daru とは
◦ ruby で DataFrame を扱うもの
 Python の pandas みたいなもの
2018/04/11 第20回 K-Ruby 10
jupyter notebook の ruby でグラフ(2)
 rbploty
◦ plotly を ruby で使うために必要
◦ plotly
 データ可視化プラットフォーム (https://plot.ly/)
◦ plotly の作図方法
 APIを叩くもの (plotlyのサーバと通信)
 頻繁な場合は有料
 plotly.js を利用する
 plotly.js はオープンソース化されていて無料
◦ rbploty がどちらを使っているかは知らない
 どちらにも対応しているみたいだが。
2018/04/11 第20回 K-Ruby 11
jupyter notebook の ruby でグラフ(3)
2018/04/11 第20回 K-Ruby 12
require 'rbplotly'
trace1 = { x: ['a',2,3,4,5,6], y: [100,200,300,400,500,600] }
trace2 = { x: ['a',2,3,4,5,6], y: [600,500,400,300,200,100] }
traces = [trace1, trace2]
pl = Plotly::Plot.new(data: traces)
pl.show
 これくらいのコードで、以下のグラフが
描ける
jupyter notebook の ruby でグラフ(2)
 daru + daru-plotly を業務で使用
◦ 「eduroam利用回数」
 ログから eduroam(無線LAN)のアクセス解析
 面倒だった点
◦ 2つの値と1つの値で値域が大きく異なる
 2軸のグラフにしたい
◦ これを実装したいためplotly のドキュメント
をよみまくる
 https://plot.ly/python/ あたりの Python 用APIド
キュメントを見ながら Python での dict を ruby の
Hash だと考えていろいろやった。
2018/04/11 第20回 K-Ruby 13

Weitere ähnliche Inhalte

Was ist angesagt?

dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話Kazuhiro Nishiyama
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみたYudai Fujita
 
GoPiGo2で遊んでみた
GoPiGo2で遊んでみたGoPiGo2で遊んでみた
GoPiGo2で遊んでみたKazuyuki Mori
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発shoma h
 
OSS Reporting Solution ThinReports
OSS Reporting Solution ThinReportsOSS Reporting Solution ThinReports
OSS Reporting Solution ThinReportsThinReports
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope高広 内山
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)三七男 山本
 
20130608 git-3
20130608 git-320130608 git-3
20130608 git-3Kasu Unko
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Yutaka Tachibana
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another ApproachDaisuke Miyakawa
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話雄也 日下部
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Kazuhiro Nishiyama
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎真哉 杉野
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018Ryuichi Ueda
 
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Hiroshi Sakate
 

Was ist angesagt? (20)

Git超入門
Git超入門Git超入門
Git超入門
 
dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
 
GoPiGo2で遊んでみた
GoPiGo2で遊んでみたGoPiGo2で遊んでみた
GoPiGo2で遊んでみた
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
OSS Reporting Solution ThinReports
OSS Reporting Solution ThinReportsOSS Reporting Solution ThinReports
OSS Reporting Solution ThinReports
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)
 
20130608 git-3
20130608 git-320130608 git-3
20130608 git-3
 
GR-CITRUSの紹介
GR-CITRUSの紹介GR-CITRUSの紹介
GR-CITRUSの紹介
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
 
mikutter入門
mikutter入門mikutter入門
mikutter入門
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
 
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)
 
Gnomeとdogtai
GnomeとdogtaiGnomeとdogtai
Gnomeとdogtai
 

Ähnlich wie jupyter notebook (jupyterhub) で ruby とグラフ

Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみたSatoshi Yazawa
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05yamanekko
 
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜Akira Ouchi
 
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書くRubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書くMisao X
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2Kuniaki Igarashi
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2Mitsutoshi Nakano
 
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Takashi Sogabe
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版VirtualTech Japan Inc./Begi.net Inc.
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回Kanako Kobayashi
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみたKazuya Wada
 
Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)fd0
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Yasuyuki Sugai
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムGo Sueyoshi (a.k.a sue445)
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介三七男 山本
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Takashi Sogabe
 
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプトさくらインターネット株式会社
 

Ähnlich wie jupyter notebook (jupyterhub) で ruby とグラフ (20)

Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみた
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
 
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書くRubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
 
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
 
Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
Jupyter notebook
Jupyter notebookJupyter notebook
Jupyter notebook
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
 
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
 

jupyter notebook (jupyterhub) で ruby とグラフ

  • 2. Jupyter Notebook 概説(1)  ジュパイターでもジュピターでもいいみたい ◦ http://youglish.com/search/Jupyter  経緯 ◦ 元々は IPython Notebook ◦ その後、Python だけでなく、Julia , Rにも対応 Julia + Python + R = Jupyter ◦ 現在は、Ruby, Haskell, Scala, node.js 等にも対応 ◦ 7つの言語の Juputer Notebook を作る  https://matsubara0507.github.io/posts/2017-04-24-create- jupyter-for-seven-lang-part1.html  Project Jupyter が開発元 ( http://jupyter.org ) 2018/04/11 第20回 K-Ruby 2
  • 3. Jupyter Notebook概説(2)何ができるの?  一言で言うと「Web上でのPython等言語の 対話的実行環境」 ◦ http://techlife.cookpad.com/entry/write-once- share-anywhare ◦ コードと実行結果と説明文(Markdown)を同時に 扱う ◦ コードとグラフを同一画面で扱う ◦ コードの改変、再実行可能 ◦ 全てWeb(ブラウザ)上で ◦ github 等を用いて notebook を共有  データサイエンス界隈で利用者多数 ◦ python + pandas + scipy + matplotlob ◦ 語の分散表現(word2vec)関連では + gensim 2018/04/11 第20回 K-Ruby 3
  • 4. Jupyter Notebook概説(3)デモ  非公開 ◦ github(gist)に notebookの本体( .ipynb)を push すると、きれいに表示してくれる ◦ GitLab(CE)でも、それなりに表示してくれる  私が構築した GitLab(CE)では、グラフが表示され ない ◦ nbviewer というのを利用すると github 等を 利用しなくてもきれいに表示してくれるらし いが使ったことない 2018/04/11 第20回 K-Ruby 4
  • 5. Jupyter Notebook Architecture  http://jupyter.readthedocs.io/en/latest/architecture/how_jupyter_ipython_w ork.html より 2018/04/11 第20回 K-Ruby 5
  • 6. Jupyter Notebook概説(5) 導入  Anaconda で、python を含め全て入る ◦ Windows/Mac/Linux ◦ データ分析に必要な python パッケージも入 る ◦ パッケージ管理もできる ◦ https://www.anaconda.com/download/  Anaconda を利用しなくても導入はでき るが For new users, we highly recommend installing Anaconda. (Jupyter Documentation より) 2018/04/11 第20回 K-Ruby 6
  • 7. Jupyter Notebook概説(6) 今後  Jupyter Notebook から JupyterLab に進化 ◦ 2014年に Jupyter Notebook になる ◦ 2016年から次世代版 Jupyter Notebook として JupyterLab プレ ビュー公開 ◦ 2018/02 ベータ版公開 ◦ 正式版は2018年内か?  操作性向上  csv, json がきれいに表示されるらしい https://news.mynavi.jp/article/20180221-587178/ 2018/04/11 第20回 K-Ruby 7
  • 8. Jupyterhub Jupyterlab-hub について  Jupyter Notebook や JupyterLab は、一人で使用することを想定 ◦ サーバに導入して、複数で利用したい(教育環境等)  Jupyterhub Jupyterlab-hub はユーザ認証機能を付けたもの ◦ サーバのローカルユーザ作成されていれば導入はそこそこ難しくない ◦ LDAP等の場合は… 試していないのでわからない 2018/04/11 第20回 K-Ruby 8
  • 9. Jupyter Notebook で ruby  基本的には iruby という Jupyter Notebook 用 ruby kernel を導入すればよい ◦ http://devopspy.com/linux/ruby-kernel-jupyter- notebook/ ◦ https://qiita.com/kozo2/items/8e0cf0d1f5672ac2f 745  「The Ruby kernel requires ZeroMQ, hence it’s C and Ruby bindings」で、OS標準の パッケージとバージョンがあわないとかで さんざん苦労したような気がするが…忘れ た  デモ 2018/04/11 第20回 K-Ruby 9
  • 10. jupyter notebook の ruby でグラフ(1)  数種類の方法がある ◦ nyaplot  動かなかった。ここ数年メンテナンスされていない ◦ rbplotly  動く ◦ gnuplot  動く ◦ daru + numo-gnuplot  動く ◦ daru + daru-plotly  動く  daru とは ◦ ruby で DataFrame を扱うもの  Python の pandas みたいなもの 2018/04/11 第20回 K-Ruby 10
  • 11. jupyter notebook の ruby でグラフ(2)  rbploty ◦ plotly を ruby で使うために必要 ◦ plotly  データ可視化プラットフォーム (https://plot.ly/) ◦ plotly の作図方法  APIを叩くもの (plotlyのサーバと通信)  頻繁な場合は有料  plotly.js を利用する  plotly.js はオープンソース化されていて無料 ◦ rbploty がどちらを使っているかは知らない  どちらにも対応しているみたいだが。 2018/04/11 第20回 K-Ruby 11
  • 12. jupyter notebook の ruby でグラフ(3) 2018/04/11 第20回 K-Ruby 12 require 'rbplotly' trace1 = { x: ['a',2,3,4,5,6], y: [100,200,300,400,500,600] } trace2 = { x: ['a',2,3,4,5,6], y: [600,500,400,300,200,100] } traces = [trace1, trace2] pl = Plotly::Plot.new(data: traces) pl.show  これくらいのコードで、以下のグラフが 描ける
  • 13. jupyter notebook の ruby でグラフ(2)  daru + daru-plotly を業務で使用 ◦ 「eduroam利用回数」  ログから eduroam(無線LAN)のアクセス解析  面倒だった点 ◦ 2つの値と1つの値で値域が大きく異なる  2軸のグラフにしたい ◦ これを実装したいためplotly のドキュメント をよみまくる  https://plot.ly/python/ あたりの Python 用APIド キュメントを見ながら Python での dict を ruby の Hash だと考えていろいろやった。 2018/04/11 第20回 K-Ruby 13