React JS charting Library

I’m in the process of building a charting tool which will be used for the labworkflow-owa and was wondering if anyone had any preference or thoughts regarding any charting library we could use in the openmrs-react-components repo. I came across this posts(one and two)on react charts, but would love to hear feedback and opinions on which would be better to work with for the community. My initial choice was highcharts but there’s this talk post regarding licensing issues with highcharts. Any thoughts about the pros/cons of each ? Which would be more suited to the UI elements ? Easy for other folks to extend upon ? Thanks.

fyi @mogoodrich @jeiddiah


It seems there’s a lot that D3 can do. Features to consider are license (preferably little to no constraints), usability, and popularity (better to be using something that does most of what we need and is used by thousands of projects and is growing vs. investing in a really cool niche library that becomes stagnant 6-12 months later).

Just to confirm, do we know if the licensing model for highcharts has changed, or are there still the same concerns as previously?

Just answered my own question… looks like high charts is still “free for non-commercial” but it looks like the same concerns still apply for governmental entities that might want to use the software.

Here’s another overview post of the different libraries avaiable:

@rhenshaw56 I know you also mentioned ReCharts, and it seems to be in pretty high use:

Thanks @burke, I think D3 is nice and offers more, plus it is ranked higher than the others in terms of usage and popularity but what I’m concerned about is it’s steep learning curve. If we were to use it, would you advice we use a custom wrapper around the main d3 library for our react components or we use any of the published d3 wrappers on npm ? cc @mogoodrich

Thanks @mogoodrich, Yeah, Recharts is good also and it’s a wrapper around D3 for react, plus it’s widely popular.

Cool, let’s start out with ReCharts and see how that works.

Take care, Mark