After using several different libraries over the past few years, I've started using D3.js on its own. While it's more work than dropping something ready-made into an app, it's more flexible.
If you have specific designs/requirements to work from, it may be easier to build the charts with D3 than trying to shoehorn a stock chart into matching the spec. Behaviors like linking chart interactions to independent components (or vice versa) become easier to implement as well.
If you care less about flexibility, Chartist is a solid contender: https://gionkunz.github.io/chartist-js/