Slides from PyData Berlin, July 2017 meetup
Plotly Dash is a newest addition to a rich ecosystem of tools to build visual data science and BI applications in Python.
2. Volodymyrk
Volodymyr ( Vlad ) Kazantsev
Head of Data Science @ Wooga
Head of Data @ Product Madness
Product Manager
MBA @LBS
Graphics programming
Writes code for money since 2002
Math degree
2
5. Volodymyrk
Plotly dash .. 2 minute version
- Build interactive data visualisations for the Web
- In Pure Python - no HTML/JavaScipt required
5
6. Volodymyrk
What is Plotly (visualisation library)?
6
+ +
API bindings:
- Core is 100% Open Source
- Has enterprise plans (and premium plugins)
- 50%+ of all devs are working on Open Source code
7. Volodymyrk
Data Visualisation Libraries in Python
1986 - GNU Plot
2003 - Matplotlib (14 years ago!)
2012 - Bokeh
2012 - Seaborn
2014 - Plotly.py
June 2017 - Dash
7
8. Volodymyrk
What are we trying to solve?
Master Dashboard
- External or internal clients
- Lot’s of interactivity
- Complex Layout
8
Analytics Portal
- Lots of Dashboards
- Many are similar
- Interactive filters/selectors
Report Generator
- Produces HTML report
- Based on inputs
Interactivity/ Exploration Pre-made choices
9. Volodymyrk
Option-1: Tableau
● Also Looker, Periscope, Superset, Qlick, Mode, Redash..
● If existing functionality is enough
● If you don’t need to automate the creation
● If “creator and owner” of those dashboards is a Business Data Analyst (e.g. not code-savvy
data scientist)
9
11. Volodymyrk
Option-3: Python back-end, JavaScript front-end
+ No middleman between browser code and you
+ Mature ecosystem
- Too complex for a regular Data Scientist
11
Web Framework: Flask, Django, Tornado, etc.
Data Layer: Numpy, Pandas, Scipy, etc
HTML+JS: D3.js, NVD3, HighCharts, Plotly etc.
12. Volodymyrk
Option-4: Bokeh Server
● Best-kept secret in Python Data Ecosystem
● Custom JavaScript library (Bokeh.js)
● Uses HTML Canvas (or WebGL)
● Historically used CoffeeScript
12
13. Volodymyrk
Bokeh Server
Bokeh.js:
- Html Canvas, lots of custom JS code
Bokeh Widgets:
- Lots of custom code
- Hard to style
Bokeh Server:
- Based on Tornado
- Stateful
13
Plotly Dashvs.
Plotly.js
- Based on D3.js
Dash Components:
- All normal HTML components in Dash
- Build on top of React!
Plotly Server:
- Just Flask
- Stateless
14. Volodymyrk
Bokeh Server
Bokeh.js:
- Html Canvas, lots of custom JS code
Bokeh Widgets:
- Lots of custom code
- Hard to style
Bokeh Server:
- Based on Tornado
- Stateful
14
Plotly Dashvs.
Plotly.js
- Based on D3.js
Dash Components:
- All normal HTML components in Dash
- Build on top of React!
Plotly Server:
- Just Flask
- Stateless
27. Volodymyrk
Tip 4: Where to get help?
Don’t use StackOverflow yet.. however there is a #plotly-dash tag already
Official forum:
https://community.plot.ly/c/dash
27
28. ● Data Scientist
● Senior Data Scientist
● Data Engineer
● Data Engineer (intern/student)
● Game Design, Art, UX
● Product Marketer
● Game devs (Unity and iOS)
● Product Manager, Live Operations
● Senior Product Manager (x3)
● And many more! . . . check out jobs.wooga.com
is HIRING!
jobs.wooga.com
30. Product Analytics Data Science Data Engineering
Analytics is not a team, but describes the way
Wooga approaches decisions
Dashboards
AB Tests
Game Balancing
Ad-hoc Insights
Business reviews Deep-dive Analysis
Machine Learning
Data Processing: Airflow
Data Pipeline: Kafka, Exasol
Data Access: Periscope, Jupyter
In-house Tools
Infrastructure: kubernetes
Stats ModellingBusiness modelling