Highcharts 详解
一、Highcharts 是什么
Highcharts 是一个纯 JavaScript 的图表库,以其极致的兼容性(支持 IE6+)、丰富的交互能力和优秀的文档著称。它是商业软件(非开源免费,个人和非商业项目免费,商业需授权)。
Highcharts vs ECharts vs G2
| 维度 | Highcharts | ECharts | G2 |
|---|---|---|---|
| 许可证 | 商业授权(非商业免费) | Apache 2.0(免费) | MIT(免费) |
| 兼容性 | IE6+(最强) | IE9+ / 现代浏览器 | 现代浏览器 |
| 包体积 | ~380KB(核心) | ~1MB(完整包) | ~500KB(G2) |
| 学习曲线 | 低 | 低 | 中 |
| 交互 | 默认丰富(缩放/拖拽/钻取) | 内置丰富 | 需配置 |
| TypeScript | 支持 | 支持 | 原生支持 |
| 3D | 支持 | 支持 | 不支持 |
| 时间轴 | 极其完善(Highstock) | 完善 | 基础 |
| 地图 | Highmaps 单独产品 | 内置 | 需 L7 |
二、快速开始
1 | npm install highcharts |
1 | <div id="container" style="width: 800px; height: 400px;" /> |
1 | import Highcharts from 'highcharts'; |
CDN 方式
1 | <script src="https://cdn.jsdelivr.net/npm/highcharts@11/highcharts.js"></script> |
三、核心概念
chart——图表配置
1 | Highcharts.chart('container', { |
series——系列
1 | series: [ |
图表类型一览
1 | type: 'line' // 折线图 |
四、常用图表
柱状图
1 | Highcharts.chart('container', { |
饼图
1 | Highcharts.chart('container', { |
时间序列
1 | Highcharts.chart('container', { |
五、交互与事件
1 | // 点击事件 |
六、钻取(Drilldown)
钻取是 Highcharts 的特色功能——点击图表的下钻到更细粒度的数据:
1 | Highcharts.chart('container', { |
七、Highstock——金融时间序列
Highstock 是 Highcharts 专门用于金融数据可视化的扩展:
1 | import Highstock from 'highcharts/highstock'; |
Highstock 的特性:
1 | ├── rangeSelector:时间段选择器 |
八、Highmaps——地图
1 | import Highcharts from 'highcharts'; |
九、自适应
1 | // 默认支持容器尺寸变化自适应 |
十、主题与自定义
1 | // 内置主题 |
十一、常见问题
Q1: Highcharts 免费吗
1 | 非开源免费。 |
Q2: Highcharts vs ECharts 怎么选
1 | 选 Highcharts: |
Q3: Highcharts 的 dataLabels 如何格式化
1 | dataLabels: { |
Q4: Highcharts 如何导出图片
1 | // 内置导出按钮(需引入 exporting 模块) |