We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The Python Data Visualization Landscape in 2020

00:00

Formal Metadata

Title
The Python Data Visualization Landscape in 2020
Title of Series
Number of Parts
130
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Python offers many different data visualization libraries, and the sheer number of alternatives can be daunting to newcomers. This talk aims to introduce the most important visualization libraries, covering Matplotlib, Plotly, Bokeh and Altair, among others. It also provides a summary of the quickly developing dashboarding solutions, including Dash, Panel and Voila. The goal of talk is not just to provide a simple list of libraries, but also to highlight the main characteristics and inspirations for each, and summarize the recent developments as well. This talk is aimed to people who have some basic experience working with data in Python and would like to get a better understanding of the data visualization tool landscape. Some existing knowledge of pandas DataFrames is beneficial for understanding the examples, but not required.
61
Thumbnail
26:38
95
106
AudiovisualisierungVisualization (computer graphics)Analytic setInformation technology consultingAudiovisualisierungBenz planeCentralizer and normalizerUniverse (mathematics)Meeting/Interview
Information technology consultingVisualization (computer graphics)Visual systemStreamlines, streaklines, and pathlinesFeedbackCodeSubsetSample (statistics)GoogolIntegrated development environmentDefault (computer science)Library (computing)Performance appraisalPoint (geometry)Slide ruleView (database)Presentation of a groupVisualization (computer graphics)WordDatabaseComputer configurationSoftware developerFeedbackOnline helpGoogolIntegrated development environmentSubsetCodeSampling (statistics)Sweep line algorithmComputer animation
AudiovisualisierungVisualization (computer graphics)CodeRight angleMereologySpeciesCategory of beingFrame problemLibrary (computing)Data structureLevel (video gaming)Computer configurationCodeDifferent (Kate Ryan album)PlotterBitVisualization (computer graphics)ScatteringFlow separationState observerMultiplication signNeuroinformatikUniform resource locatorMeasurementSet (mathematics)InformationField (computer science)Computer animation
Local GroupAudiovisualisierungVisualization (computer graphics)StatisticsPlot (narrative)Library (computing)Focus (optics)Personal digital assistantVisual systemMathematical optimizationDefault (computer science)Formal grammarInteractive televisionARPANETWeb browserBitGame controllerBuildingRule of inferenceFocus (optics)Multiplication signInteractive televisionWeb applicationCodePlotterStatisticsWrapper (data mining)Level (video gaming)Structural loadWhiteboardLibrary (computing)Presentation of a groupCore dumpView (database)SpeciesSet (mathematics)FreewareLine (geometry)Variable (mathematics)WordGateway (telecommunications)Cartesian coordinate systemDifferent (Kate Ryan album)Graph (mathematics)Group actionGraph coloringFigurate numberMotion captureGoogolScatteringFrame problemNumberCASE <Informatik>Visualization (computer graphics)Interface (computing)Theory of relativityDefault (computer science)Computer configurationSimilarity (geometry)Bounded variationGUI widgetSoftwareImperative programmingSampling (statistics)LengthRight angleSlide rule2 (number)State of matterPoint (geometry)MereologyDigitizingUtility softwareOpen sourceComplex (psychology)Matrix (mathematics)Asynchronous Transfer ModeModulare ProgrammierungLogic gateVector spaceProgram flowchart
Interactive televisionServer (computing)GUI widgetARPANETVariety (linguistics)Declarative programmingObject (grammar)Open sourceGraph (mathematics)Library (computing)Graph (mathematics)ExpressionAliasingFormal grammarAudiovisualisierungExpressionCodeLibrary (computing)Single-precision floating-point formatTouchscreenDifferent (Kate Ryan album)Line (geometry)Level (video gaming)Object (grammar)Front and back endsCodeLatent heatBitDescriptive statisticsInterface (computing)Flow separationFormal grammarInteractive television1 (number)FamilyGroup actionSet (mathematics)ProteinPoint (geometry)Core dumpNumberStatisticsMereologyPlotterFrame problemVariable (mathematics)GoogolSpeciesWrapper (data mining)Functional (mathematics)Type theoryExpert systemInformationSimilarity (geometry)WebsiteProduct (business)Fundamental theorem of algebraElectric generatorFatou-MengeArrow of timeGraph coloringCategory of beingRevision controlComputer configurationRight angleCircleElectronic mailing listVisualization (computer graphics)Connectivity (graph theory)View (database)Content (media)BlogMultilaterationCartesian coordinate systemGraphics libraryIntrusion detection systemAreaTraffic reportingProjective planeFilm editingScatteringFigurate numberWeightSpacetimeOpen sourceSystem callGraph (mathematics)Key (cryptography)MappingGoodness of fitOpen setAudiovisualisierungComputer animation
Mobile appComputer configurationMilitary baseRight angleLevel (video gaming)Theory of relativityWrapper (data mining)View (database)Medical imagingMobile appCore dumpResultantInclusion mapCodeSampling (statistics)Game controllerBitVisualization (computer graphics)GUI widgetVirtual machineLibrary (computing)Parameter (computer programming)Different (Kate Ryan album)LaptopCellular automatonBlock (periodic table)Interactive televisionElectric generatorAlgorithmBuildingWeb applicationInformation engineeringStress (mechanics)Endliche ModelltheorieWeb 2.0Term (mathematics)Software frameworkCategory of beingWeb browserPlotterComputer animation
Visualization (computer graphics)Time evolutionSource codeSlide ruleWebsiteLink (knot theory)Electronic mailing listLaptopGoogolTwitterTwitterOpen setElectronic program guideGoodness of fitSlide ruleLibrary (computing)CodeTerm (mathematics)Software developerMultiplication signConstraint (mathematics)StatisticsVisualization (computer graphics)BitDigitizingNumberCore dumpCoordinate systemDatabaseBlogWebsiteComputer animation
Multiplication signOpen sourceSlide ruleProteinComputer configurationOpen setPlotterMeeting/Interview
Graph (mathematics)Object (grammar)AliasingArtificial neural networkOpen sourcePlotterEnterprise architectureComputer configurationVisualization (computer graphics)Library (computing)1 (number)NumberBookmark (World Wide Web)SubsetProjective planeSet (mathematics)Level (video gaming)Multitier architectureView (database)Program flowchartMeeting/Interview
SicDynamical systemNumberStatisticsText editorLevel (video gaming)Library (computing)
Benz planeMultiplication signThumbnailAreaLibrary (computing)CASE <Informatik>Chord (peer-to-peer)Meeting/Interview
Transcript: English(auto-generated)
So, our next speaker is Benze Arato from BI Consulting. He also organizes the PyData Budapest meetup, and he is a visiting lecturer at the Central European University, where he is teaching courses on data visualization and visual
analytics. So, welcome, Benze, and let's start. Thank you for your kind introduction. So, I can kind of sweep my first slide. Just one thing I might be able to mention that this talk is kind of in the intersection
of two of my kind interests, data visualization and working with Python. And during the talk, I kind of like to share my experience, what I had when I was learning about different options which exist in the Python world for visualizing data. So, let's start with a bit of thank you.
This talk would not exist without the help, the works, the presentation, the talk from many people from the Python data visualization community, so thank you for all, and special thanks to Jim and Nicholas, who was kind enough to provide feedback during the preparation for this talk, and my colleague, Annette, who have the code examples, what you will
see during the talk, so thank you very much. And a word of caution as well. At first, the Python database landscape is quite large, so this talk will only cover a subset of the libraries and not everything which is there. All libraries have pros and cons, and the evaluation is always subjective, so what
you will hear is actually my point of view, my personal opinion. You might have different preferences for how you would like to visualize your data. And finally, a technical comment that the code samples was prepared on Google Colab and works well there, but if you want to try them out in different environments, you might
have to make adjustments. All right, first part, introduction. The reason for this talk is came back to this very nice chart. When I was researching the different options existing the Python visualization landscape, I was a little bit confused, but there is so many libraries that connected very
interesting ways. There seem to be libraries doing the same thing. There are libraries with different syntax, so I set out to kind of structure them in a way to create a map which will help me understand what kind of libraries are there, which are the main libraries, and how they are built on each other.
And this is what I will share today, but a bit of preparation before the main part of the talk. We will many times mention that some libraries are more low-level, detailed, or as we can say, imperative, which means when you have worked with the library, you have to exactly tell to the computer how you want the chart created with the exact steps, and with other
libraries, you can go to the decorative way where you just tell the computer what should be done. I need a scatter plot for two of these variables, and the library will kind of find out the exact details, how they would work, which feels typically used by the higher-level
libraries, and the code would be shorter, easier to use, easier to understand. The examples in the talk, we've used the penguin datasets. It's a very nice and funny dataset, recently released. It has the data on several observations and different kinds of penguins, so this is how it looks like loaded into a Pandas data frame.
We have a species information, which kind of penguin it is, the location, some measurements, other categories. This is the dataset from which we will create all of the example charts. It is loaded into a data frame called DF. That's what you will see in the code examples. So, the first major part of the talk is the charting libraries, and I tried to group them
together because I believe there is a separate group of charting libraries, which is connected to each other or building on each other. The first and probably the most well-known library is matplotlib. There is a saying that everybody starts in charting in Python with matplotlib.
This is the chart. This is the library that has been around for the longest time. It does many, many things, so it has a large number of use cases where you can use matplotlib for academic publication, to data discovery, and creating working libraries for any kind of dataization need.
It's a very nice thing in the dataization world in Python that almost all of the libraries has a nice gallery where you can see at least what kind of charts is supported by the libraries. And also, typically, if you click on a library, then you will see a code sample, so it's very easy to understand what kind of code you have to write to create in matplotlib
a bar graph or a horizontal bar chart or any other kind of chart which is supported by matplotlib. All right. Let's have a look at our first example chart. So here, what we create with every library is a scatter plot, which kind of compares the build length and the flipper length for the penguins.
And we colored different species of the penguins in different colors. And we have a legend and some access titles. And in a sense, the matplotlib code is quite straightforward. We are importing the library. We are setting an option about the figure size.
Then we are looping over the species group. So every group, every kind of species, we are adding a set of markers on the plot. Then we are showing the legend and setting some access labels. It's understandable. It works well. But you will see that higher-level libraries will offer a much more shorter syntax, creating
a very similar charts. So let's start building our data visualization map. The background is matplotlib is matlab, the matrix software package. It's an open source and option of variation of that. And it is a charting library. And in a sense, you can use matplotlib. You don't have to use anymore.
But there is two major challenges working with matplotlib, which is a very common finding with Python users. The first, the matplotlib, because it's an imperative low-level library, you have to code many things manually. And sometimes you will wish for a higher-level library with a better, shorter, easier-to-understand syntax.
There is a Q&A there. But anyway, I have to continue on that. So one set of great libraries, the matplotlib, will try to solve the first problem, the low-level variable syntax. Seaboard is one such library. The goal of Seaboard is to provide a higher-level API or interface on top of matplotlib.
So it would be easier to create charts. It also has quite nice visual defaults. So typically, a Seaboard chart would look nice without any kind of further adjustments or settings. It has a special focus on statistical charts as well. So if you look for a statistical variable, Seaboard will have the chart you need.
There is a gallery as well. I won't mention them, just flip through them. And okay, let's have a look at the penguin chart in Seaboard. You can see two interesting things there. The first, we are still importing matplotlib because some options not present in the Seaboard API.
So it kind of goes down in the matplotlib level and set that, for example, the figure size. And the other thing you can see here that the actual code for creating the scatterplot is indeed much more shorter. And I would say more easy to understand. You're just telling Seaboard you want a scatterplot. You are setting the variables.
You're telling Seaboard that you want this color by species. And the data is in the data frame called df. And the chart is done. The other library I want to mention here is plotline, plot 9. Plot 9 has the same goal. It's one to be a higher-level library on top of matplotlib. But this came from the philosophy from the R word and ggplot.
If you ever work with R, you will know that in the R word, ggplot is the gate visualization library. It's a very nice syntax. So people who are coming to Python from R and have experience creating charts in ggplot, then they will find plotline very, very similar to ggplot.
And it was very easy for use for them because the syntax very closely copies the ggplot syntax. As you can see in the example, it is a high-level library. You exactly need just three lines of code to create the example scatterplot. You are importing plotline.
And then you are setting the variables. And then you are coloring them by the species. And you are done. Everything else, like the axis labels or the legend with the species is automatically generated. You don't have to specify them manually. OK. There is a few summary slides during the presentation.
This is for later viewing. So this is just for you to view the presentation. You can see what I told during the talk. Let's have a second look at our map. So we have a core low-level library, matplotlib. And if you wish to use something which is higher level, easier to use, then we can either go to Seaboard, or if we already have experience with ggplot, then plotline would be a good
library for them. And this is the first group of libraries, matplotlib, and the higher-level vectors around matplotlib. Let's move to the second group. I told that there is basically two challenges related to using matplotlib.
The first is the low-level syntax. And the second, that was for a long time lack of any kind of interactivity, interactive features. So if you wanted to have like browser-based JavaScript-powered visualization where you can have interactive features, matplotlib doesn't really do that. That was the reason for the creation of Bokeh, which is, I would say, probably the second
most widely used and well-known data visualization library in Python. Bokeh was created to be able to do interactive charts in the browser, powered by JavaScript. But it is actually a little bit more than just a charting library because the Bokeh
library also has interactive controls or widgets. So sliders, checkbooks, radio buttons, and it has features for building applications as well. So you can use Bokeh as just a charting library, or you can try to build complex
applications and dashboards just in Bokeh. We have our gallery as well there with examples for to check out. And then if you get to the code, again, I would say there is two things to see here. The first that the Bokeh code is kind of not short. So you can see again here that Bokeh is a low-level library where you have to specify
many things manually. You have complete control how Bokeh works, but you do have to learn the syntax and write the code to set every option the way you want. And the more interesting part on the left side, you can see the chart there. In the top right corner, there is a toolbar.
This is where you can get the interactions. You can zoom in into the chart. You can select points. You can save it. And there is many more interactivity features of Bokeh. This is just a presentation, so I can't show the interactive feature to you. But I will share the Google Colab mode book with all of the example charts.
So you can try the interactive features for yourself after the presentation has been finished. All right, Bokeh background. Let's move forward. What we have here is our map. So now we have Bokeh as a second core low-level library. And now probably you can guess what's coming up.
Of course, there is higher-level wrapper libraries for Bokeh as well, which would make it more easier for creating charts, more short, more dense syntax. The first I want to mention is HoloViews. It is a way for creating charts just by telling HoloViews how your data looks like.
And the chart would be auto-generated for that. An interesting part for Bokeh is that, for HoloViews, I'm sorry, that it is supporting not just Bokeh, it also supports Matplotlib. As the documentation says, there is different backends for HoloViews. The key point is here that once you learned the HoloView syntax
and the HoloViews AP cores from creating different kind of libraries, then just with a single line of code and maybe very minor adjustment, you can have your chart generated either as Bokeh-based charts or Matplotlib-based charts. There is even a new support for the Proteh backend.
HoloViews try to be really an overall library, which will serve as a common unification interface for several backends. And if you are moving to the HoloViews code example, the HoloViews Penguin chart, you can see that, again, this is just three lines of code because it's a high-level decorative library.
We are importing HoloViews. We are setting the backend to Matplotlib. So the chart here is actually rendered by Matplotlib. And the actual chart creation code is just one line. We are telling HoloViews that we need a skeptical plot passing in the list of variables and setting some options for coding and figure side.
Much more shorter, I would say, than the pure Bokeh version from the same chart or pure Matplotlib version from the same chart. There is actually, this is what you can see, the HoloViews is a high-level library, which wraps both Bokeh or Matplotlib based on your preference.
But there is more. You can see there is some white space below HoloViews because there are actually more than one high-level wrapping library for Bokeh. Let me quickly flip through them. There is HVplot, which aims to be a common charting interface for several Python data containers.
So the ID is here. Then you can visualize your data stored in pandas or in dusk or in xarray with exactly the same syntax. HVplot will read your data from the data container and then generates HoloViews object. So HVplot is based on top of HoloViews and the actual charts will be then visualized by Bokeh.
Another interesting option is pandas-bokeh library, which is an independent project done by Patrick Lobel, if I'm pronouncing right. The goal is kind of the same. You have your data is in a pandas or geopandas or PySpark data frame,
and you want to plot them using Bokeh, then you can just import pandas-bokeh and then you can use the plotbokeh function. So just a single line of code, you will get your data frame data visualized in Bokeh. It's a bit same in context, same in goals, but what HVplot does, your data is in a data frame you want to visualize in Bokeh,
the most simple way is possible. And it was very interesting to see the sponsor announcement for Spotify because another chart for working for Bokeh data would be Chartify, and it does come from Spotify. There is a very nice blog post on the Spotify tag blog
where they describe they wanted to have a standard, high-level, easy way to create charts with Spotify for all data scientists, and they did not find anything which we liked, so they created their own which is open source, and that's Chartify. I don't have an example for that, but on the Chartify website there is very nice examples
how you can use Chartify to chart your data. Okay, our summary sites for later viewing, and let's have a look at the map. So now we have two low-level core libraries, matplotlib and Bokeh, and we have several high-level wrappers for each of them.
Let's move forward. The third group of Py2 Visualization libraries in my classification would be the Plotly family. It is actually several components building on top of each other,
coming from the same group, same company, the same group of people. The lower-level libraries is the Plotly open source graphic libraries. There is a Python library. There is an R library. My understanding is there is also a Julia library is in the works, and then there is the Plotly JavaScript open source graphic library,
which covers all of the Python, R, or Julia visualization, so you can create your low-level charts in Python, or hopefully soon in Julia, and they were rendered by the Plotly-GS, Plotly library. If you have a closer look at the Python open source, I'm sure you will see that there is a huge number of chart types supported.
This is just the first part of a long, long list, but on the left side, you can see that there is fundamentals, there is basic charts, statistical charts, scientific charts, financial charts, maps. There's even support for 3D charts, and my understanding is that it's kind of a unique feature
supporting 3D chart generation, which no other Python library does really well, so if you need 3D charting, then probably Plotly would be a good solution for you. But I have no code option for Plotly, because since the last year, there is a new higher-level library from Plotly called Plotly Express,
and the recommendation is now that if you want to create Plotly-based charts, you should start at Plotly Express. You can always get down to the Plotly level if you need. There is something you can do in Plotly Express, but in general speaking, the Plotly Express library would be a more easier and nice experience
for creating Plotly-based charts. This is the documentation side. You can see that there is more than 30 different functions in Plotly Express, so there is many, many chart types which you can actually create just working from Plotly Express without moving into the lower-level charting API.
Let's have a look at the example code. This is how you can create the Penguin chart in Plotly Express. It's very, very straightforward. You are importing the library, and you are just then telling it, I need a skeptical plot. Here is my data in the data frame. Here is my variables I want to be plotted. I want to mark colored by species,
and we are just setting the size, and everything is done very, very nice, sweet, short syntax background information. So now we covered three groups of libraries. Matplotlib, the Matplotlib family, let's call that way, the Bokeh set of libraries,
and the Plotly Graph object, and we have four set of libraries that have to be discussed, and that would be a little bit different than the previous ones. So because Vega and Vega-Lite, those are not libraries, they are visualization grammars, which means that they are a way
of describing your visualization, appearance, and interactivity in JSON format, in JSON objects. Vega is a low-level, very detailed specification, and there is Vega-Lite, which is a little bit more structured, easier to describe a standard chart. You can see here that the bar chart in Vega
is a very, needs a very long description, about a hundred line of codes, the same charts in Vega-Lite, just half a screen, because Vega-Lite is a higher level way of describing chart, and there is a Python library for generating those descriptions, which could alter. This is definitely built on top of Vega
and Vega-Lite. So if we move to the code, we can see that alter is very, very high level. We are just importing them, and there is just one command to create the chart. We are telling the alter that we need the mock to be circles. We are encoding two variables at the x and y axis, and we are encoding the color
by the species variable, and we are setting some properties. So this is our final version of the charting libraries part. We have four major way of creating charts, Matplotlib and Reppers, similar with Bokeh, with the Protely line of code, and alter as a fourth way.
And we are almost finished here, but let me just mention that sometimes you need not just simple charts. You want to build dashboards or data apps, which has typically more than one chart, and add some interactivity controls, selectors, and probably a way to run code and update your dashboard
or app with the result of the code. And there is four option also for that. I'm just mentioning all of them. There is Protely from Protely Dash, Protely Dash from Protely, the company you are working with are creating Protely, and it lets you create nice dashboard kind of visualization and apps. These are examples. You have your selectors on the left
and the visualization, KPIs and charts on the right. There is Ponell, which is anaconda related. I would say the same people are working on that who are writing column views. A very nice feature of Ponell is that it supports inclusion of different kinds of charting libraries. On that sample dashboard, you can see that the same chart is created in HVplot,
in Altair, in Matplotlib, and in Protely, and they are displayed on the same dashboard with some interactive controls. So Ponell is a friend to everyone. There is Voila, which is a little bit a different approach, and a very nice approach, I would say. Voila aims to provide an easy way to turn your Jupyter notebook
into an interactive web app. So this is how a Jupyter notebook looks like after working in Voila. Your code cells are kind of hidden, so the end user just sees your widgets and visualization results, but they don't see your code, and also they can't
turn any kind of code. It's a quite secret and quick way to publish your Jupyter notebooks to a larger ODS end user, larger end user audience, and the final one is Streamlit. This is a very interesting library. This is the newest kind of block. It's just 10 months old,
but has a very large structure, and they raised $21 million in funding very recently. They are very strict, very much targeting the data scientist and data engineer community. They say that this is the fastest way to build a machine learning app. So if you have a border, for example, a GN,
for generating images, then you can drop it into a Streamlit app. On the left side, you have your parameter controls, and when you move them, then the image generation algorithm will rerun, and you will get a new modified image. Definitely would recommend to try this out in your own browser, and so how would that work?
So this is our final map. We are coming from different backgrounds. There is core level libraries, which give you absolute control, but you need to learn syntax and learn and probably write longer code bases. There are higher level of wrapper libraries, which would make working and creating charts easier,
and if you need more than just simple charts, then there is dashboard writing up frameworks, four of them, and all of them worth checking out. Final steps. At first, I want to mention the PyWiz.org website, which is an open guide to data visualization tool. So I mentioned
that I don't cover all libraries in this talk because of time constraint, but the PyWiz website try to cover everything, so you can see here many other charts being mentioned. There is very nice statistics about the libraries, method, how you can see how many started tests, how many contributors are there,
what is the download numbers, the core libraries, or the dashboard libraries. There was a good talk at the Anaconda Conference in June. I will recommend watching that as a next step. It's a little bit more advanced than my talk, so if you want to learn more about the Py2 data visualization landscape, then I would recommend watching Jim's talk. There was a meetup last June
where three of the contributors has spoken, and you can download their slides and code examples from my blog post I wrote in them, and with that, we are wrapping up the talk. The conclusion is that we are living in a golden age of the Python database. There are many great libraries and very active development.
There is a very, very nice and welcoming community, good cooperation between the different libraries. I'm very much looking forward, but the next 12 months will bring in terms of the Python data visualization landscape. Material will be posted. I'm very happy to ask your question in Discord. You can also find me on Twitter or LinkedIn if you want to chat about data visualization in Python.
Thank you very much for the attention. Thank you very much. Very nice talk. We have time. We have many questions, actually. Too many questions. We will not have time for all, so let me... You already answered. Can you share the slides?
So you don't have to answer this anymore. One interesting question is which of these are free and open source? Johnny Zhang is asking that question. I believe that basically everything which was been... which we show here is free and open source. I know that Plotly has some paid commercial
options as well, but if we go here that basically everything I believe here is free and open source. The Plotly Dash has not open source paid enterprise option, but my understanding is that everything else is here is free and open source.
Then another question was what is your favorite visualization package? It's a hard question because I definitely would... I definitely prefer the high-level libraries, so I try to avoid learning too much syntax from our specific
low-level libraries, and I would say that for me, Altair is very nice. Plotly Express is very nice. HoloView is also very nice. I'm not much an R people, so Plotly doesn't really provide value to me because I don't know R, but I would say that HoloViews, Plotly Express, and Altair, all of them, I use them very happily,
so you can't go wrong with any of them, I would say. And the question from Paolo Gomez, what are your thoughts on Apache Superset? It's a very good question. So there is actually two other open source projects,
and a lot of them Apache Superset, which is... I'm not really familiar with them, but my understanding is that Supersets try to be more of a business-like dashboarding tool, but I can't really comment on them. But I can say that I do see Superset is being used by a number of companies,
so it has a strong following and a strong user base, but it's not covered in this talk. And then we have the question from Ruixiang Chua, sorry for the pronunciation. With the many libraries which are the ones do you see usually?
Well, I would say that the four main set, all of them are being quite widely used. Matplotlib everywhere, many people just know Matplotlib and probably Seaborn, Bokeh is very widely used. For that, actually, I would say that the best way, not ask me, but if you check out on the PyViz website, the statistics,
that you can see that either based by stars or by download, you can see that Matplotlib is like everywhere, still everybody is using Matplotlib, 10 million downloads per month, but probably is quite close to that, especially on PyPy, like 3 million downloads,
and if you go down to the dashboarding level, then the downloading number would be Dash, which is the most well established library, is probably the most widely used. All of them, you can see 300k downloads per month, and others would be like 70s and 30s
and 27 downloads, but we're going to see the market dynamics between Streamlit. Streamlit is 10 months old. It already has 8k stars on GitHub, so this is something I see to be watched. Okay, the time is up.
Actually, there is one more question with a thumbs up. The really last one. Do you have any recommendation for geographical data? Unfortunately, that's not my area of expertise. I do know that there are specific libraries targeting that, so probably for that kind of use case,
you need something special, but I will have to search or look it up. Let's come to Discord, and then we have a discussion there. Exactly. Let's go to Discord, and I'm sure Benze will answer all your questions. There you can ask him
all the remaining questions. Unfortunately, we didn't have time to cover all, so thank you very much again.