Hello everyone! I just sent out our quarterly Dash newsletter, Dash Club. In case you aren’t on the email list (sign up here: https://go.plot.ly/dash-club), I’ve included the newsletter below. Lot’s of good stuff in here!
-
We spent the fall working on page load performance:
-
Previously, we loaded all of the JavaScript from all of the component libraries upfront.
Now, we load them on demand. This is called “lazy loading.” So, if your home page doesn’t display a graph, then the plotly.js library isn’t loaded until you navigate to the page that does.
-
We started caching your app’s JavaScript and CSS assets.
With these improvements, our documentation loads much, much faster. Your apps should too!
-
-
dash_table.DataTable
now supports links and Markdown in its cells. This was one of the most requested features. Thanks to everyone who contributed to the discussion. -
DataTable is full of features now: row and column selections; built-in CSV & Excel export; clientside and serverside filtering, sorting, and paging; data types; dropdowns; cell overflow and wrapping; column renaming, hiding, and deleting, and more! The DataTable reference page exhaustively describes all of the customizations that are available.
-
Clientside callbacks are callback functions that are written in JavaScript instead of Python, can now be written directly in your app.py file. Clientside callbacks are our recommended “escape hatch” when you need to boost the performance of your Dash app.
-
Dash Core Components and Dash Table support a new feature that we’re calling “persistence”.
Sometimes you want to save things the user has done in your app beyond the lifetime of the individual affected components. Perhaps you let your users choose their language or edit the headers of a table, and they want to see these same settings every time they load the app. Or perhaps you have a tabbed app, so a form disappears when you switch to a different tab, and you want the same settings when the user comes back to that tab, but you want to reset them if the page is reloaded. There are ways to do this with dcc.Store components, but the Dash persistence feature dramatically simplifies these cases. Persistence is built-in to these components, so you don’t need to write any complex logic yourself.
The dcc.Graph
component is powered by plotly.js, our open source JavaScript graphing library, and plotly.py, our Python graphing library. We’ve made 17 releases to these packages since the summer.
Highlights include:
-
Mapping chart types now support alternative tile servers like Open Street Map or your organization’s own tile server —a Mapbox account is no longer necessary.
-
Plotly Express, our new grammar-of-graphics inspired plotting interface, is now bundled into the library, and all of our examples on our documentation use this new syntax.
-
We wrote a comprehensive guide on all the ways you can create and update graphs, from plotly.express to graph_objs, to figure factories to dictionaries.
-
Categorical colorscales & traces are now supported in choropleth maps.
-
We finally support legend titles.
-
imshow, a method for creating images from multi (rgb) or single channel (greyscale) data is now available.
-
Sunburst charts have a new API that makes it really easy to make “drilldown” style charts from dataframes. The same API is also available for our new treemap charts
-
You can supply your own quartiles when creating box plots.
-
If your data is tidy, you can rapidly create subplots or small multiples charts with our new facet_wrap property.
-
County-level choropleths and choropleths with custom geoJSON data is now supported…
-
…and so are density maps.
ICYMI
-
We released Plotly.py 4.0.0 in July—our biggest release yet. Read the announcement essay. - We’re now at v4.5.0.
-
We released Dash 1.0.0 in July—read the announcement. We’re now at version 1.8.0.
-
Dash is now available for R! The syntax is almost identical to Dash for Python, and it uses the exact same component libraries and rendering engine. So, if you’ve learned Dash in one language, it’s easy to pick it up or collaborate with a colleague in another language. Check out the Dash for R Announcement Letter.
Looking Ahead
-
Dynamic callback support is coming soon! This will address one of the core limitations of Dash. We’ve discussed this limitation in the community forum’s topic Dynamic Controls and Dynamic Output Components, and we’re addressing it with our wildcard proposal. Play around with a prerelease in the Pull Request on GitHub.
-
We’re buckling down on stability and documentation updates over the next few months. Expect better datepickers, a download component, more documentation examples, improved slider components, client side callback recipes, and more.
-
Looking for a feature in particular? You can to write to me directly by responding to this email. If your organization has a software budget, you can also become a partner or license Dash Enterprise to help steer the roadmap.
On the commercial side of things
-
While a lot of our work is open source and MIT licensed, we also build and license a commercial product called Dash Enterprise. Learn more in our weekly live webinar (https://go.plot.ly/live-demo) or on our Dash Enterprise website.
-
Dash Enterprise 3.4.0 is coming out in the next few weeks. I’ll be giving a demo of its latest features on Feb 17th—the webinar is open to everyone, not just our customers. Sign up for the webinar.
In The Community
-
There is now a LinkedIn Dash User Community.
-
A few community members have built their own Dash Bio-inspired components. Check out this ngl viewer.
-
There have been lots of Dash Meetups this fall: Princeton, Knoxville, London, Freiburg (Germany), Houston, Montreal, Paris, Canberra (Australia), and more. Are you presenting Dash at a meetup this winter? Let us know! We’d be happy to help.
-
I’m loving these basketball shot charts made with plotly express by JP Hwang.
-
Big thanks to all the stargazers out there; we’re almost at 11k!
-
Many thanks to everyone in the community who reviewed Dash on G2.
-
This Dash app uses Dask & Datashader to display 40 million data points. As you zoom into the map, it’ll switch from an aggregated view to an individual point view with interactive hover labels.
-
University of Sherbrooke’s CoBIUS lab has made some very cool computational biology apps. SpliceAlnViz is an interactive alignment visualization tool highlight important components of gene structures such as exons, introns, splice sites, and predicted exons.
-
We’ve partnered with Canadian scholars via Mitacs, a Canadian research arm, to build more open source bioinformatics tools in Dash.
-
In more Canadian news, we’ve partnered with Scale AI and several Canadian companies to accelerate AI initiatives in the supply chain industry.
-
This charitable donations web app is one of the more beautiful Dash apps we’ve seen wild. 360 Insights is behind the app, and they’ve published their code on GitHub. (https://insights.threesixtygiving.org/file/a003W000001MNvSQAW) (https://github.com/ThreeSixtyGiving/Insights)
-
A data scientist at Tesla, Moorissa Tjokoro, wrote a great piece about Plotly’s open source technology on Towards Data Science. ()
Have something to share? You can write to me directly by posting with the Show & Tell tag in the community forum
Staying Up to Date
-
We’re posting our release announcements in the community forum with the announcements tag.
-
Also find us on twitter @plotlygraphs
-
We’re still publishing our larger announcements on our Medium blog.
IRL
Our calendar is filling up. If you’re at any of these events, let us know!
-
OODSC East - April 13-17 in Boston
-
PyCon 2020 - April 15-17 in Pittsburgh
-
Data Summit - May 19-20 in Boston
Keep it up everybody
chriddyp