Dash User Guide

This user guide is for the Python implementation of Dash.
Dash is also available in R.
View the Dash for R User Guide & Documentation

What's Dash?

  • Introduction
  • A quick paragraph about Dash and a link to the talk at
    Plotcon that started it all.

  • Announcement Essay (2017)
  • Our extended essay on Dash. An extended discussion of
    Dash’s architecture and our motivation behind the project.

  • Dash App Gallery
  • A glimpse into what’s possible with Dash.

  • Dash 1.0.0 Migration
  • Dash v1.0 is out! If you’re new to Dash, just head down to the tutorial section below and get started. This section is for users Dash v0.x upgrading to v1.0. We’ve learned a lot from working with the amazing Dash community, and Dash v1.0 makes a number of changes to make your apps even more intuitive, powerful, and extensible as Dash continues to evolve.

  • Dash Club
  • An email newsletter by chriddyp, the creator of Dash.

Dash Tutorial

  • Part 1. Installation
  • How to install and upgrade dash libraries with pip

  • Part 2. Layout
  • The Dash layout describes what your app will look like and is composed of a set of declarative Dash components.

  • Part 3. Basic Callbacks
  • Dash apps are made interactive through Dash Callbacks: Python functions that are automatically called whenever an input component’s property changes. Callbacks can be chained, allowing one update in the UI to trigger several updates across the app.

  • Part 4. Interactive Graphing and Crossfiltering
  • Bind interactivity to the Dash Graph component whenever you hover, click, or select points on your chart.

  • Part 5. Sharing Data Between Callbacks
  • global variables will break your Dash apps. However, there are other ways to share data between callbacks. This chapter is useful for callbacks that run expensive data processing tasks or process large data.

  • Part 6. FAQs
  • If you have read through the rest of the tutorial and still have questions or are encountering unexpected behaviour, this chapter may be useful.

Dash Callbacks

  • Basic Callbacks
  • Go through this introductory chapter to learn the foundations of the Dash callback.

  • Advanced Callbacks
  • Now that you’ve gotten through the basics, take a look at other things you can do with callbacks - from performance improvements to callback contexts.

  • Clientside Callbacks
  • You might want to execute a callback in the frontend as opposed to the backend if you want to avoid the extra time that it takes to make a roundtrip to the server. Clientside callbacks allow you to write your callbacks in JavaScript that runs in the browser.

  • Pattern-Matching Callbacks
  • The pattern-matching callback selectors MATCH, ALL, & ALLSMALLER allow you to write callbacks that respond to or update an arbitrary or dynamic number of components. New in Dash 1.11.0!

  • Callback Gotchas
  • Dash callbacks have some idiosyncrasies that should be taken into consideration when building a Dash app. If you’re running into unexpected callback behavior, and the rest of the documentation hasn’t shed any light on the situation, try taking a look in this section.

Open Source Component Libraries

  • Dash Core Components
  • The Dash Core Component library contains a set of higher-level components like sliders, graphs, dropdowns, tables, and more.

  • Dash HTML Components
  • Dash provides all of the available HTML tags as user-friendly Python classes. This chapter explains how this works and the few important key differences between Dash HTML components and standard html.

  • Dash DataTable
  • dash_table.DataTable is an interactive table that supports rich styling, conditional formatting, editing, sorting, filtering, and more.

  • Dash Bio
  • Dash Bio is a component library dedicated to visualizing bioinformatics data.

  • Dash DAQ
  • Beautifully styled technical components for
    data acquisition, monitoring, and engineering
    applications.

  • Dash Canvas
  • Image rendering, drawing, annotations for image processing applications.

  • Dash Cytoscape
  • Dash Cytoscape is our new network visualization
    component. It offers a declarative and pythonic
    interface to create beautiful, customizable,
    interactive and reactive network graphs.

  • Dash Bootstrap Components
  • A library of Bootstrap components created by faculty.ai. Dash Bootstrap Components makes it easier to build consistently styled apps with complex, responsive layouts.

Creating Your Own Components

Beyond the Basics

  • Performance
  • There are three main ways to speed up Dash apps: caching, using WebGL chart types, and implementing clientside callbacks.

  • Live Updates
  • Update your apps on page load or
    on a predefined interval (e.g. every 5 seconds)

  • Adding CSS & JS and Overriding the Page-Load Template
  • New in dash v0.22.0! Learn how to add custom CSS and JS to your
    application with the assets directory. Also, learn how to
    customize the HTML template that Dash serves on page load in order
    to add custom meta tags, customize the page’s title, and more.

  • URL Routing and Multiple Apps
  • Dash provides two components (dcc.Link and dcc.Location) that allow you to easily make fast multipage apps using its own “Single Page App (SPA)” design pattern.

  • Persisting User Preferences & Control Values
  • (Released September 2019 with Dash 1.3) Save user choices
    across page reloads, or just when removing and re-adding a
    component. Learn how to use persistence, and how to enable it
    in components you write yourself.

  • Dev tools
  • Dash dev tools reference

  • Loading States
  • Getting the loading state of a component and adding a loading component

  • Dash Testing
  • An introduction to testing your dash app with selenium

  • Dash App Lifecylce
  • An overview of the lifecyle of a Dash app

Production

Dash Enterprise

Dash Enterprise is Plotly's commercial offering for managing and improving your Dash apps in your organization.