SlideShare a Scribd company logo
Volodymyrk
1
Berlin, 16th July, 2017
And Data Visualisation in Python
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
Plotly dash and data visualisation in Python
Live Demo-1
Volodymyrk
Plotly dash .. 2 minute version
- Build interactive data visualisations for the Web
- In Pure Python - no HTML/JavaScipt required
5
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
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
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
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
Volodymyrk
Option-2: R-Shiny
+ Mature
+ Backed by RStudio (commercial company)
+ Looks good
- R
10
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.
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
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
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
Volodymyrk
Option-6: Jupyter Dashboards
+ Easy to build
- Layouts/callbacks/interactivity is limited
- Not suitable for building “client-facing” apps
15
Volodymyrk
FrontEnd:
D3,
Plotly.js
Highchart
BackEnd:
Python, Java
In summary
16
Exploration Product For SalePrototype/Quick App
Jupyter Notebook
(Local) Tableau
Excel
Jupyter Dashboard
Internal Data Product
Tableau Server
RShiny
Bokeh Server
Plotly Dash
Live Demo-2
Volodymyrk
Case Study
You just get the best job in the galaxy
Volodymyrk
19
Your new Boss Business domain Business case
I love synthetic data
Volodymyrk
20
Class-1 Class-2
Class-3 Class-5
http://starwars.wikia.com/wiki/Droid
Volodymyrk
Jabba’s Used Droid business
21
Multi Dimensional Event-level Time Series
Volodymyrk
22
Tips and Tricks
Volodymyrk
Tip-1: truly data-driven apps
- Dynamic, data-driven, layout
Def build_layout(..):
app.layout = build_layout
24
- Need to pre-define all callbacks
app.config.supress_callback_exceptions = True
Volodymyrk
Tip-2: Caching
- App is Stateless!
25
Volodymyrk
Tip-3: Production Deployment
dash-project/
app1/
app.py
datamodel.py
app2/
app.py
datamodel.py
mycomponents/
...
server.py
Run.py
uwsgi .. --wsgi-file run.py
https://community.plot.ly/t/multiple-dashboards/4656
26
Monolithic App UWSGI Emperor Mode
Similar structure, but we are
not there yet..
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
● 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
Volodymyrk
Appendix
29
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
Our Tech Stack
Airflow
Magic 8 Ball Predictive
Analytics
Research
Dashboards
& Data Viz.

More Related Content

PPTX
Simulated Annealing
PPTX
Time Series
PDF
APPLICATION OF DATA SCIENCE IN HEALTHCARE
PPTX
Python Seaborn Data Visualization
PPTX
Orange Data Mining and Data Visualization Tool
PDF
Fluxo de Processos do Guia PMBOK® – 6ª Edição
PDF
Data Analysis and Visualization using Python
PDF
DeFi 101
Simulated Annealing
Time Series
APPLICATION OF DATA SCIENCE IN HEALTHCARE
Python Seaborn Data Visualization
Orange Data Mining and Data Visualization Tool
Fluxo de Processos do Guia PMBOK® – 6ª Edição
Data Analysis and Visualization using Python
DeFi 101

What's hot (20)

PPTX
Dash plotly data visualization
PPTX
Tech Talk - Overview of Dash framework for building dashboards
PDF
Data Visualization With Tableau | Edureka
PPTX
Introduction to Graph Databases
PDF
Intro to Neo4j and Graph Databases
PDF
Graphs for Data Science and Machine Learning
PPTX
Python libraries for data science
PPTX
Relational databases vs Non-relational databases
PPTX
PPTX
Introduction to Graph Neural Networks: Basics and Applications - Katsuhiko Is...
PDF
Enabling Vectorized Engine in Apache Spark
PPTX
Introduction to Apache Spark
PDF
Hadoop Overview & Architecture
 
PPTX
Graph Analytics
PDF
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
PDF
Neo4j GraphDay Seattle- Sept19- neo4j basic training
PDF
Introduction to AI & ML
PDF
Building an ML Platform with Ray and MLflow
PPTX
introduction to NOSQL Database
Dash plotly data visualization
Tech Talk - Overview of Dash framework for building dashboards
Data Visualization With Tableau | Edureka
Introduction to Graph Databases
Intro to Neo4j and Graph Databases
Graphs for Data Science and Machine Learning
Python libraries for data science
Relational databases vs Non-relational databases
Introduction to Graph Neural Networks: Basics and Applications - Katsuhiko Is...
Enabling Vectorized Engine in Apache Spark
Introduction to Apache Spark
Hadoop Overview & Architecture
 
Graph Analytics
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Neo4j GraphDay Seattle- Sept19- neo4j basic training
Introduction to AI & ML
Building an ML Platform with Ray and MLflow
introduction to NOSQL Database
Ad

Similar to Plotly dash and data visualisation in Python (20)

PPTX
Spsmi13 charts
PPT
Cross-Platform Mobile Development in Visual Studio
PDF
Serverless Go at BuzzBird
PDF
Easing offline web application development with GWT
PPTX
SharePoint for the .NET Developer
PPT
PDE2011 pythonOCC project status and plans
PDF
Add the power of the Web to your embedded devices with WPE WebKit
PPTX
HAXTheWeb @ Apereo 19
PPT
Toronto SharePoint Camp 2010
PDF
GraphQL in Production
PPT
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
PPTX
Rethinking frontend development
PPTX
Creating Great Applications in SharePoint 2010 with Silverlight 4
PDF
Philip Shurpik "Architecting React Native app"
PPTX
Sps Boston The Share Point Beast
PDF
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
PPTX
Mobile Web Apps and the Intel® XDK
PPTX
Vue storefront London PWA meetup
PDF
Angular (v2 and up) - Morning to understand - Linagora
PPTX
Introduction to android studio 2.0 and data binding library
Spsmi13 charts
Cross-Platform Mobile Development in Visual Studio
Serverless Go at BuzzBird
Easing offline web application development with GWT
SharePoint for the .NET Developer
PDE2011 pythonOCC project status and plans
Add the power of the Web to your embedded devices with WPE WebKit
HAXTheWeb @ Apereo 19
Toronto SharePoint Camp 2010
GraphQL in Production
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
Rethinking frontend development
Creating Great Applications in SharePoint 2010 with Silverlight 4
Philip Shurpik "Architecting React Native app"
Sps Boston The Share Point Beast
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
Mobile Web Apps and the Intel® XDK
Vue storefront London PWA meetup
Angular (v2 and up) - Morning to understand - Linagora
Introduction to android studio 2.0 and data binding library
Ad

More from Volodymyr Kazantsev (6)

PDF
Bayesian model averaging
PDF
Clean Code in Jupyter notebook
PDF
Customer segmentation - Games Analytics and Business Intelligence, Sep 2015
PDF
How to conclude online experiments in python
PDF
Agile data visualisation
PDF
Agile Data Science
Bayesian model averaging
Clean Code in Jupyter notebook
Customer segmentation - Games Analytics and Business Intelligence, Sep 2015
How to conclude online experiments in python
Agile data visualisation
Agile Data Science

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The AUB Centre for AI in Media Proposal.docx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25 Week I

Plotly dash and data visualisation in Python