Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nyaplotの紹介@U-22プロコン
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
domitry
October 06, 2014
Technology
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nyaplotの紹介@U-22プロコン
domitry
October 06, 2014
More Decks by domitry
See All by domitry
Topics about SciRuby @dcmodel/davis tutorial, Kobe
domitry
0
250
The Elements of Statistical Learning 読書会 3.4章
domitry
0
340
PCで絵をかこう!
domitry
0
600
JavaScript&可視化講習会#1
domitry
1
710
精神は物理的に記述できるか
domitry
0
180
RubyとFortranの話
domitry
0
400
Nyaplot - a data visualization tool for Ruby
domitry
3
760
D3.js入門
domitry
0
4.4k
3Dプリンタの使用感に関する考察
domitry
1
340
Other Decks in Technology
See All in Technology
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
150
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
170
事業課題から技術的負債に向き合う
sansantech
PRO
1
430
omasushiというライブラリを作った
polidog
PRO
0
210
安心して変更できるWebフロントエンドの作り方
pirosikick
4
1.8k
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.5k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
130
家のリアーキテクト・リファクタリング
suguruooki
0
130
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
160
2026_devsumi_ozono.pdf
o3
3
440
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
160
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
730
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Raft: Consensus for Rubyists
vanstee
141
7.7k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
From π to Pie charts
rasagy
0
360
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Exploring anti-patterns in Rails
aemeredith
3
500
HDC tutorial
michielstock
2
860
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
WCS-LA-2024
lcolladotor
0
830
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