Dash
Plotly’s Dash provides a tighlty-integrated frontend that can be written in Python. It is used to build a graphical user interface around the data analysis code. The main aspects of a Dash frontend are the multitude of components, the interactivity between those components, and the customizability supported by those components. Users can design the look of the application using the application’s layout by creating interactive components like graphs, dropdowns, sliders, or date ranges and can even add HTML tags. Dash also provides a lot of flexibility when it comes to customizing the look of the application. Users can use their own CSS or JavaScript files, set a favicon, and embed images, among other advanced options.
Plotly’s Dash application is a graphical user interface library for creating analytical web applications. Users of Python who perform data analysis, data exploration, visualization, modelling, instrument control, and reporting will find immediate use for Dash.
Dash uses several components that help in building out the “layout” of the graphical user interface. These components are typically prepackaged in Python libraries. While some of these components come built-in with Dash, the rest need to be installed separately. Some of the most common components that almost evey application includes are: 1. Dash HTML Components: This provides Python wrappers for HTML elements. It can be used to create elements like headings, paragraphs, or lists. 2. Dash Core Components: This provides Python abstractions for creating interactive user interfaces. It can be used to create interactive elements such as dropdowns, sliders, radio buttons, checkboxes, and graphs.
Dash’s interactivity is based on a reactive programming paradigm. This means that you can link components with elements of your app that you want to update. If a user interacts with an input component like a dropdown or a range slider, then the output, such as a graph, will react automatically to the changes in the input.
Dash’s customizability caters to two main areas: 1. Addition of external assets to the application such as images or videos. 2. Customizing the styles of the components such as font, background, etc.