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
PythonでInteractive Network Graph Visualization!
Search
yamatia
July 31, 2020
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PythonでInteractive Network Graph Visualization!
yamatia
July 31, 2020
Transcript
23 slides
Pythonで Interactive Network Graph Visualization @ebitia 2020/7/31 Members. data #2
データ可視化・ライブラリ LT編
whoami Ebitia - 薬学部6年 - 研究室でNLP - 最近冷やしAtCoder始めました @TwYamat
TABLE OF CONTENTS INTRODUCTION どんなグラフを 可視化したいか? TOOLS Pythonでは どんなものがある? PRACTICE
実際に 可視化してみる CONCLUSION まとめ APPENDIX おまけ 01 02 04 05 03
01 INTRODUCTION どんなグラフを可視化したいのか? - AtCoder Graph - Molecular Graph -
Word Graph
AtCoderとは? - 日本の競技プログラミングコンテ ストサイト (天才以外お断りパズルコンテストとも呼ばれる) - ほぼ毎週コンテストが無料開催 - 問題の条件を満たすプログラミン グのスピードや正確性を競う
CASE1:AtCoder
この問題文にはグラフ例が書いてあるが、書いてない問題もある 入力が複雑だとイメージできない(当社比) (他の形式として、有向/重み付き/木構造/grid/etc...) AtCoderのグラフ問題
ChEMBLから取得できる 医薬品の構造データ 構造を見れるサイト、 ツールはいろいろあるが 重み付き無向グラフとし て扱うこともできる CASE2:分子構造のグラフ
テキスト解析で、単語の関 係性を見たい場合 似た意味・関連語を近くに 置いたグラフを作成する 例えば - Jaccard係数での共起 ネットワーク可視化 - Word
embeddingを3Dグ ラフで可視化 CASE3:単語の関係性
要するに Nodeとedgeの集合として 与えられたグラフを いい感じに可視化したい (できればinteractiveに)
TOOLS pythonでグラフ可視化に使え るモジュールいろいろ紹介 02
- NetworkX - Graph-tools - python-igraph - Graphviz - pyvis
上記と組み合わせると便利なもの - webweb - netwulf Pythonでinteractive graph visualization
・意外とたくさんある ・基本的にはNetworkXでは色んなオプションがあるので 便利 ・速度比較すると、graphviz,graph-toolsよりも遅い場合 もある(微妙に) ・NetworkXにはいろいろ拡張モジュールが開発されてい るので便利 どのツールを使えばいいのか?
・Netwulfとは? NetworkXのスタイルをインタ ラクティブに設定できるモ ジュール 例:NetworkX+Netwulf
PRACTICE 実際にpythonでinteractive 03
・NetworkXで作ったグラフをpyvisでhtml化し て可視化できる [demo] NetworkX+pyvis+jupyter notebook
・最近streamlitが流行と聞いたので... [demo] NetworkX+streamlitでAtCoderの可視化
CONCLUSION 04
- Networkx+◦◦でinteractive network graph が作成できる、小さな用途では十分? - 大規模ネットワーク等では速度なども要検証 - AtCoderのグラフ可視化については今後作っ ていきたい所存(意外と奥が深かった...)
まとめ
APPENDIX 05 おまけ
NodeとEdgeの情報が与えられたとして (どのnode同士が結ばれてるか/辺の重み,向きなど) どうやったらグラフを綺麗に描画できるのか? 求めることは意外とたくさんある... ノードが重ならない方がいい、グラフの面積が大きすぎないほ うがいい、辺の交差は少ないほうがいい、辺の角度も小さすぎ ないほうがよい、etc… (余談)Graph Drawingについて①
色んな理論が研究されているが、その中でも有 力なものとして力学モデルがある 今回紹介するツールでは以下の2つが組み込ま れているものが多い ・Kamada-Kawai法 ・Fruchterman-Reingold 法 (余談)Graph Drawingについて②
今回紹介したnetworkxで は、springlayoutで Fruchterman-Reingold法 1. ランダムに頂点配置 2. 頂点間に働く力を計算 3. 頂点を力に従い移動 4.
温度tを下げる 5. 2~4を繰り返す (default=50) (余談)Graph Drawingについて③
end
More Decks by yamatia
See All by yamatia
CycleGANを使ってきのこたけのこ戦争を終わらせたかった話
yamatia
0
230
20200626_Trends_in_Machine_Learning.pdf
yamatia
0
940
日本語学習済みモデルについて
yamatia
0
90
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
600
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
A Tale of Four Properties
chriscoyier
163
24k