Unfortunately, this isn't free for commercial use, so perhaps something like Google Charts is more suitable (depending on your use case). There are plenty of alternatives out there.
Google Charts is nice but its major problem is that the data has to be sent to Google so it renders your chart if I get it well. But yes, there are plenty of alternatives. Some are not updated anymore but can still be useful according to your use cases.
Chartist.js just had a lot of support on HN, although I haven't used it. I've used Raphaël but customizing it can actually be a bit hard. Chart.js is simple, easy to use, and just powerful enough for most cases.
d3 is probably the one that has gained the most buzz from developers as of late. From my experimentation/evaluation of various charting libraries, d3 is certainly the most powerful.
The difference between d3 and highcharts is like a paint brush vs. a coloring book. If you're davinci, you can make masterpieces with a paint brush. However, even davinci (probably) started off drawing little stick figures. A coloring book defines the basic shapes you want, you just need to fill in the colors and add your personal touch.
Highcharts is neat because it's a high-level api around charting. If you want to make charts, it's one of the most customizable and well-documented API's out there. If you want to build a custom visualization, highcharts offers a good amount of customizability, but sometimes you just gotta drop down into assembly.
For charting, d3 has an insanely high learning curve. (spent last weekend looking for one and while there are a few good d3-based charting libraries, they aren't very robust)
d3 is not really a charting library. It's a general data binding engine that happens to have exceptional SVG support. Entire classes are taught on d3 due to its generality.