插件窝 干货文章 移动端图表库选型:uChart和ECharts堆叠柱状图如何实现相同效果?

移动端图表库选型:uChart和ECharts堆叠柱状图如何实现相同效果?

柱状 uChart ECharts 系列 667    来源:    2025-03-27

uChart与ECharts堆叠柱状图实现对比

核心差异概述

uChart和ECharts虽然都能实现堆叠柱状图,但它们在API设计、配置方式和性能优化上有明显差异:

  • ECharts:功能全面,配置项丰富,适合复杂图表需求
  • uChart:轻量级,针对移动端优化,API更简洁

具体实现对比

1. ECharts实现堆叠柱状图

option = {
  tooltip: {
    trigger: 'axis',
    axisPointer: { type: 'shadow' }
  },
  legend: {
    data: ['系列1', '系列2', '系列3']
  },
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  xAxis: {
    type: 'category',
    data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      name: '系列1',
      type: 'bar',
      stack: '总量',
      data: [120, 132, 101, 134, 90, 230, 210]
    },
    {
      name: '系列2',
      type: 'bar',
      stack: '总量',
      data: [220, 182, 191, 234, 290, 330, 310]
    },
    {
      name: '系列3',
      type: 'bar',
      stack: '总量',
      data: [150, 232, 201, 154, 190, 330, 410]
    }
  ]
};

2. uChart实现相同效果

const option = {
  series: [
    {
      name: '系列1',
      type: 'bar',
      stack: '总量',
      data: [120, 132, 101, 134, 90, 230, 210]
    },
    {
      name: '系列2',
      type: 'bar',
      stack: '总量',
      data: [220, 182, 191, 234, 290, 330, 310]
    },
    {
      name: '系列3',
      type: 'bar',
      stack: '总量',
      data: [150, 232, 201, 154, 190, 330, 410]
    }
  ],
  categories: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
  yAxis: {
    format: val => val // 数值格式化
  },
  legend: {
    show: true
  },
  tooltip: {
    show: true
  }
};

关键差异点

  1. 配置结构

    • ECharts有明确的xAxis/yAxis分离配置
    • uChart采用更简化的categories/yAxis结构
  2. 性能优化

    • uChart针对移动端做了更多渲染优化
    • ECharts功能更全面但包体积更大
  3. 交互功能

    • ECharts提供更丰富的交互效果
    • uChart专注于基础交互,更轻量

选型建议

  • 选择ECharts如果:

    • 需要复杂图表交互
    • 项目对包大小不敏感
    • 需要丰富的图表类型
  • 选择uChart如果:

    • 专注移动端性能优化
    • 需要轻量级解决方案
    • 项目对包大小敏感

迁移注意事项

  1. 配置项名称需要调整(如xAxis → categories)
  2. uChart的动画效果较ECharts简单
  3. uChart的自定义样式API更简洁
  4. 事件处理机制有所不同

两者都能实现优秀的堆叠柱状图效果,选择应基于项目具体需求和运行环境考虑。