echarts支持哪些图表

1 阅读5分钟

一、基础图表类型(按功能分类)

1. 数据比较类

图表类型特点与适用场景示例场景
柱状图/条形图(Bar/Column)直观展示不同类别数据的数值对比,支持分组、堆叠、瀑布图等变种,适合多维数据对比。销售业绩月度对比、市场份额分析。
折线图(Line)展示数据随时间或顺序的变化趋势,支持平滑曲线、面积填充,适合时间序列数据。股票走势、气温变化趋势。
饼图/环形图(Pie/Doughnut)展示部分与整体的占比关系,环形图可同时展示多组数据占比。渠道流量来源、用户画像分析。
雷达图(Radar)多维度数据的综合比较,以多边形面积展示数据均衡性。产品性能评估、人才能力模型。
漏斗图(Funnel)展示数据从初始到最终的转化流程,适合漏斗模型分析(如用户转化、销售漏斗)。电商购买转化率、广告投放漏斗。

2. 数据分布类

  • 散点图(Scatter):展示两个变量的相关性,可通过气泡大小表示第三维度数据。
    ▶ 应用:用户行为分析(如消费金额与频次的关系)。
  • 箱线图(Boxplot):展示数据的分布范围、中位数、四分位数等统计特征。
    ▶ 应用:数据质量分析、异常值检测。
  • 热力图(Heatmap):通过颜色深浅展示数据密度或相关性。
    ▶ 应用:用户点击热力图、区域销售热度分布。

3. 地理空间类

  • 地图(Map):支持世界地图、中国省级/市级地图,可标记数据点或区域颜色渐变。
    ▶ 应用:疫情数据分布、物流区域覆盖情况。
  • 3D地图(3D Map):结合高度维度展示数据,需额外引入GL扩展。
    ▶ 应用:城市人口密度3D可视化。
  • 迁徙图(Lines Map):通过动态线条展示数据流动趋势(如人口迁徙、物流路线)。
    ▶ 应用:春运人口流动、航班航线分布。

二、高级图表与扩展特性

1. 复合图表(组合图)

  • 混合图表:在同一坐标系中组合多种图表(如折线图+柱状图),适合多维度数据对比。
    option = {
      xAxis: { type: 'category', data: ['A', 'B', 'C'] },
      yAxis: { type: 'value' },
      series: [
        { type: 'bar', data: [10, 20, 15] }, // 柱状图
        { type: 'line', data: [8, 16, 12] }  // 折线图
      ]
    };
    
  • 仪表盘(Gauge):环形进度条展示数据完成度,支持指针、刻度自定义。
    ▶ 应用:任务完成率、系统资源使用率监控。

2. 动态与交互图表

  • 桑基图(Sankey):展示数据流向关系,节点大小表示流量,线条粗细表示权重。
    ▶ 应用:供应链物流分析、资金流向追踪。
  • 关系图(Graph):通过节点和边展示复杂网络关系(如社交网络、知识图谱)。
    ▶ 应用:社交关系可视化、技术架构依赖图。
  • 时间轴图表(Timeline):多图表按时间轴联动展示,适合数据演化过程演示。
    ▶ 应用:历史数据变迁、项目进度跟踪。

3. 3D 图表(需引入 ECharts GL)

  • 3D 柱状图/散点图:增强视觉层次感,适合大屏数据可视化。
  • 3D 地球:结合地图与数据点,展示全球范围数据(如跨国贸易数据)。

三、行业场景化图表

1. 金融领域

  • K线图(Candlestick):展示开盘价、收盘价、最高价、最低价,支持技术指标(如MACD、RSI)。
    ▶ 应用:股票、期货行情分析。
  • 布林带图:结合K线图展示价格波动区间,辅助趋势判断。

2. 电商与运营

  • 帕累托图(Pareto):按降序排列数据并叠加累积占比,用于80/20法则分析。
    ▶ 应用:找出贡献80%销售额的20%商品。
  • 矩形树图(TreeMap):用矩形面积表示数据占比,适合层级数据展示(如商品分类销售额)。

3. 科研与工程

  • 热力图矩阵:展示多变量相关性矩阵,常用于基因表达、用户行为分析。
  • 误差线图:在折线图/柱状图上添加误差范围,适合科研数据可视化。

四、图表扩展与定制能力

1. 自定义图表(Extension)

  • 通过echarts.extendChartView扩展原生图表,或开发全新图表类型。
  • 案例:自定义水波纹图表、动态粒子图表。

2. 主题与样式定制

  • 内置主题:light(默认)、darkroma等,支持自定义主题配色。
  • 样式配置:通过itemStylelineStyle等属性精细调整图表元素。

3. 交互与动画

  • 交互组件:tooltip(提示框)、legend(图例)、dataZoom(数据缩放)。
  • 动画配置:支持入场动画、更新动画、离场动画的自定义参数(如animationDuration)。

五、问题

1. 问:如何选择合适的图表类型?

    • 比较数据大小:优先柱状图、折线图、饼图;
    • 展示趋势变化:选择折线图、面积图;
    • 地理分布数据:使用地图、迁徙图;
    • 复杂关系数据:考虑桑基图、关系图。

2. 问:ECharts 如何实现图表间的联动?

    • 通过dataset共享数据源,多图表绑定同一数据;
    • 使用eventBus或Vue的$emit/$on实现图表交互联动(如筛选一个图表影响其他图表);
    • 利用toolbox.feature.dataView实现数据视图与图表的联动更新。

3. 问:大数据量场景下推荐哪些图表?

    • 折线图/散点图:启用progressive增量渲染(如progressive: 1000);
    • 柱状图:使用large模式(large: true)优化绘制性能;
    • 地图:采用聚合数据(如区域数据汇总)减少渲染压力。