Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nyaplotの紹介@U-22プロコン
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
domitry
October 06, 2014
Technology
1
200
Nyaplotの紹介@U-22プロコン
domitry
October 06, 2014
Tweet
Share
More Decks by domitry
See All by domitry
Topics about SciRuby @dcmodel/davis tutorial, Kobe
domitry
0
230
The Elements of Statistical Learning 読書会 3.4章
domitry
0
310
PCで絵をかこう!
domitry
0
580
JavaScript&可視化講習会#1
domitry
1
690
精神は物理的に記述できるか
domitry
0
170
RubyとFortranの話
domitry
0
370
Nyaplot - a data visualization tool for Ruby
domitry
3
740
D3.js入門
domitry
0
4.2k
3Dプリンタの使用感に関する考察
domitry
1
320
Other Decks in Technology
See All in Technology
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
9
1.7k
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
3
720
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
490
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
[JAWSDAYS2026][D8]その起票、愛が足りてますか?AWSサポートを味方につける、技術的「ラブレター」の書き方
hirosys_
3
120
アーキテクチャモダナイゼーションを実現する組織
satohjohn
0
190
堅牢.py#2 LT資料
t3tra
0
130
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
脳内メモリ、思ったより揮発性だった
koutorino
0
210
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
5
2.6k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.2k
親子 or ペアで Mashup for the Future! しゃべって楽しむ 初手AI駆動でものづくり体験
hiroramos4
PRO
0
110
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
160
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
Music & Morning Musume
bryan
47
7.1k
ラッコキーワード サービス紹介資料
rakko
1
2.6M
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
The browser strikes back
jonoalderson
0
780
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Transcript
Nyaplot v0.1.1 ⼤阪⼤学 基礎⼯学部 2年 ⻄⽥ 直樹 (※このページの画像は以下の通りライセンスされています)
Nyaplot Ruby向けのインタラクティブなプロット⽤ライブラリ データの解析・加⼯と可視化、プロットのWebへの出⼒を Rubyで⼀貫して⾏う プログラミング初⼼者の学⽣・研究者でも数⾏でプロット
インタラクティブ性 (1/2) Prototyping (試⾏錯誤しながらプロットを作る) 対話的に⾊決め、データ解析
インタラクティブ性 (2/2) Viewing (閲覧者がデータに触れることができる) PC・タブレット・スマホのブラウザで表⽰
Case 1: 物理系の研究室 教授「Strange Attractorの初期値鋭敏性を体感してもらう Webサイトを作りたい!」 Excelで試してから同じものをJavaScriptで実装する…?
None
None
Erbテンプレートへ notebookで書いたコードに数⾏の追加で実現 <title>Nyaplot</title> <script src="http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js"></script> <script> </script> <form method="post" action="/">
<input type="submit" value="submit"> </form> <%= Nyaplot.generate_init_code %> <%= @frame.generate_body %> <%= str=""; @p.each{|k, v| str += "#{k}: <input type="\"text\"" name="\"#{k}\"" value="\"#{v}\""><br>"
Case2: 統計学のレポート 「⾵速・海⽔温・地震のデータをそれぞれ可視化し、考察 を含めてレポートにせよ」 matplotlibのプロットをpngで出⼒しepsに変換、TeXに張 り付け…?
None
レポート提出 ⾃動⽣成されたNotebookをDropboxへアップロード
Nyaplotの夢 「科学分野でRubyを使ってもらいたい!」 現在使われている⾔語はバラバラ (例えば解析:R, 可視化:matplotlib, 出⼒: Rails) 利⽤者(学⽣・研究者)にはフラストレーションの溜まる状 況
Nyaplotは最先端 JavaScriptの台頭で情勢が変わりつつある 各⾔語のライブラリがこぞってJavaScriptと連携 PythonのBokeh, matplotlib, Plotlyなど Nyaplotはその中でも最先端 WebGLでの3Dプロットのサポート IRuby notebookとの密な連携
まとめ Ruby向けプロットライブラリNyaplot ⾼い⽣産性(数⾏で複雑なプロットができる) インタラクティブ性 Prototyping (対話的なプロットの作成) Viewing (ブラウザでプロットに触る) Nyaplotの未来 Rubyの科学分野での普及
Nyaplotは最先端(JavaScript, WebGL)
補⾜
拡張機能 RubyとJavaScriptで⾮常に短く実装 地図を実装するのにRuby約100⾏+JavaScript約200⾏ これだけで国別に塗り分けしたり気候情報を地図上にプロ ットできる
拡張機能 Plot, Diagram, Scale等にモジュール分け 両者は同じDiagram(Nyaplot::Diagrams::Scatter) 座標系のみを新しく定義し同じDiagramを⼆度実装しない
⼆種類のAPI 簡単なプロットと複雑なプロットの両⽅を簡潔に作りたい 統⼀された2つのAPI 簡単なプロット: Arrayベース 複雑なプロット: DataFrameベース
DataFrameベース R⾵, データを解析・加⼯する際に向いている DataFrameを作った後、⾏(column)の名前を指定 df = DataFrame.from_csv("path_to_csv_file") sc = plot.add_with_df(df,
:scatter, :x, :y) sc.fill_by(:home) sc.shape_by(:home) sc.tooltip_contents([:name, :home])
Arrayベース matplotlib⾵, データがRubyのオブジェクトとしてすでにあ る場合に有⽤(Strange Attractorの例など) 配列(Array)をそのまま代⼊してプロット plot.add(:bar, [:hoge, :hunya, :nyaa],
[0.3, 1.0, 2.0])
その他のプロット :2D View notebook
その他のプロット :3D View notebook
その他のプロット :Mapnya View notebook
その他のプロット :Bionya View notebook