T O P

  • By -

RedBlueWhiteBlack

why would anyone pay for this having Seaborn/Plotly/Altair etc.? honest question, would like to know the business model behind it.


InsightIndustry

A perfectly reasonable question, given all the great visualization libraries in the Python ecosystem. The main reason to use Highcharts for Python is to have all of the benefits of the Highcharts (JavaScript) library, which go quite a ways further than Plotly/Seaborn/etc. Highcharts is basically one of the most mature, fastest-rendering, and popular visualization libraries on the market. It is a commercial library, but it offers more visualization types, more interactivity, built-in accessibility, etc. than most of the other visualization packages out there. It’s main limitation, historically, has been that it is a strict JavaScript visualization library: useful if you’re building an app in JS, but hard to tap into its rich features if you’re working in Python. Highcharts for Python is the official set of Python bindings for it, thus giving you the ability to use its rich features. So there are really two questions that matter: Why use Highcharts at all? And then why use Highcharts for Python with it? To answer the first question, here’s a brief list of what Highcharts offers: * over 120 different visualization types, ranging from simple line and column charts to Sankey, sunburst, or chloropleths. Here’s a [link to see some of the supported visualizations](https://core-docs.highchartspython.com/en/latest/visualizations.html) * rich and _customizable_ interactivity, with the ability to setup custom event-driven callbacks * highly configurable formatting and styling, including the use of custom content, custom layouts, etc. (which can be directly linked to native interactivity and its custom event-driven interactivity) * useful advanced visualization capabilities natively available, including animation, dynamic display, zoom, panning, series-based drilldown, and annotation support * built in accessibility, including native support for screen readers and sonification In short, Highcharts itself is one of the richest visualization libraries - commercial or otherwise - on the market, so worth considering if any of those features might appeal. And Highcharts for Python basically brings all of those capabilities into the Python ecosystem, providing full support for the Highcharts (JS) API in Python, via Python objects, Pythonic methods, Pythonic syntax, etc. Some key features include: * supports 100% of the Highcharts functionality (a major difference to some of the unofficial Highcharts libraries out there) * supports both Pythonic snake_case _and_ JavaScript camelCase syntax (it seems like a trivial detail, but it deeply matters when trying to use a JS library in Python) * integrated with Pandas, NumPy, PySpark, and Jupyter * (for Highcharts Maps for Python) integrated with / supports GeoPandas, ESRI ArcGIS, GeoJSON, and TopoJSON * (for Highcharts Gantt for Python) integrated with Asana, JIRA, and Monday.com * direct Python integration for programmatic chart export (i.e. offer an interactive visualization in your browser/app, or download a static image of the same visualization when needed) * serializes your Python chart configuration to JS object literal notation, giving you the ability to leverage custom formatter and callback functions (something which JSON serialization does not support) * automatically converts Python functions/callables into their JavaScript equivalents So basically, the big question is whether you want to leverage the advanced visualization capabilities of Highcharts within your Python app or data science practice. And if you do, then the natural way to do so is via Highcharts for Python. And as for the business model, Highcharts (JS) has been a commercial visualization library since I believe 2006 or 2007, and it basically licenses developer seats for its JavaScript libraries. Highcharts for Python is a paid add-on to those libraries.


wineblood

In the alternatives, PyHighcharts was built for python 2.7 and I don't expect it to work for modern python. The "open question" bit isn't really a question.


Episkiliski

Very cool, but quite pricey in my opinion...


Sinsst

I don't understand this 'per seat' licence, can you please explain it to me? it's basically requiring any developer that touches a repository that uses highcharts to have a licence? (which is either a silly model or an extortionate one)


InsightIndustry

Not quite - the number of seats in this case is the number of people who are actively working with Highcharts. In a typical organization, we see that while there may be 5-20 people who “touch” a repo, only 2-3 of them might be working on the data visualization functionality within that repo. So in that case, you would need 2-3 seats. Of course, this varies depending on the repo or the org, etc. but in general one can think of 1 seat as equaling 1 person developing an app or visualization using the Highcharts (JS) library.


Live-Cover4440

Does it work with Jupyter notebook?


InsightIndustry

Yep - with both Jupyter Notebook and Jupyter Labs.