千家信息网

微信小程序中怎么安装和引用ECharts

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"微信小程序中怎么安装和引用ECharts",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"微信小程序中怎么安装和引用ECharts"吧!Ap
千家信息网最后更新 2026年10月31日微信小程序中怎么安装和引用ECharts

本篇内容主要讲解"微信小程序中怎么安装和引用ECharts",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"微信小程序中怎么安装和引用ECharts"吧!

Apache ECharts 官方提供了在微信小程序中使用Echarts 的代码实例和 ec-canvas 组件,但是未发布 npm 包。

此项目在官方代码之上修改支持 ec-canvas 组件传入 echarts 可支持 npm 引入 echarts 或本地自定义构建后的 echarts,更符合 Web 开发体验。

并且发布 npm 包,支持小程序通过 npm 安装使用。并支持 Taro 按需引入 echarts 减小打包体积。【相关学习推荐:小程序开发教程】

安装

npm install echarts-for-weixin

小程序引用

参考代码 tools/demo

1、首先在页面的 json 文件加入 usingComponents 配置字段

{  "usingComponents": {    "ec-canvas": "echarts-for-weixin"  }}

2、项目根目录创建 package.json 并执行 npm install 安装依赖

{  "dependencies": {    "echarts": "^5.1.2",    "echarts-for-weixin": "^1.0.0"  }}

3、小程序开发者工具中构建 npm

点击开发者工具中的菜单栏:工具 --> 构建 npm

4、在页面中引入 echarts,可以从 npm 引入 echarts,也可以引入本地自定义构建的 echarts 以减小体积

import * as echarts from 'echarts' // 从 npm 引入 echartsimport * as echarts from './echarts' // 或者从本地引入自定义构建的 echarts

5、然后可以在对应页面的 wxml 中直接使用该组件

  

6、ec-canvas 的具体用法和如何初始化图表请参考 Echarts 官方小程序示例

import * as echarts from 'echarts'let chart = null;function initChart(canvas, width, height, dpr) {  chart = echarts.init(canvas, null, {    width: width,    height: height,    devicePixelRatio: dpr // new  });  canvas.setChart(chart);  var option = {    tooltip: {      trigger: 'axis',      axisPointer: {            // 坐标轴指示器,坐标轴触发有效        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'      },      confine: true    },    legend: {      data: ['热度', '正面', '负面']    },    grid: {      left: 20,      right: 20,      bottom: 15,      top: 40,      containLabel: true    },    xAxis: [      {        type: 'value',        axisLine: {          lineStyle: {            color: '#999'          }        },        axisLabel: {          color: '#666'        }      }    ],    yAxis: [      {        type: 'category',        axisTick: { show: false },        data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'],        axisLine: {          lineStyle: {            color: '#999'          }        },        axisLabel: {          color: '#666'        }      }    ],    series: [      {        name: '热度',        type: 'bar',        label: {          normal: {            show: true,            position: 'inside'          }        },        data: [300, 270, 340, 344, 300, 320, 310],        itemStyle: {          // emphasis: {          //   color: '#37a2da'          // }        }      },      {        name: '正面',        type: 'bar',        stack: '总量',        label: {          normal: {            show: true          }        },        data: [120, 102, 141, 174, 190, 250, 220],        itemStyle: {          // emphasis: {          //   color: '#32c5e9'          // }        }      },      {        name: '负面',        type: 'bar',        stack: '总量',        label: {          normal: {            show: true,            position: 'left'          }        },        data: [-20, -32, -21, -34, -90, -130, -110],        itemStyle: {          // emphasis: {          //   color: '#67e0e3'          // }        }      }    ]  };  chart.setOption(option);  return chart;}Page({  data: {    echarts,    ec: {      onInit: initChart    }  },  onReady() {    setTimeout(function () {      // 获取 chart 实例的方式      console.log(chart)    }, 2000);  }})

Taro 引用

参考代码 examples/taro

准备工作

  1. 安装依赖

npm install echarts-for-weixin
  1. 在项目根目录中新建文件 project.package.json 或者自定义命名,此文件是小程序的 package.json,并在下一步中添加小程序自定义构建 npm 方式。这么做的目的是为了能够共享项目 node_modules

project.package.json

{  "dependencies": {    "echarts": "^5.1.2",    "echarts-for-weixin": "^1.0.2"  }}
  1. 在 project.config 的 setting 中添加小程序自定义构建 npm 方式,参考 自定义 node_modules 和 miniprogram_npm 位置的构建 npm 方式

{  "setting": {    "packNpmManually": true,    "packNpmRelationList": [      {        "packageJsonPath": "../project.package.json",        "miniprogramNpmDistDir": "./"      }    ]  }}
  1. 执行 Taro 的开发或者打包命令进行项目开发

npm run dev:weapp
  1. 小程序开发者工具中构建 npm。注意:小程序开发工具打开的项目目录是 dist 文件夹

点击开发者工具中的菜单栏:工具 --> 构建 npm

引入 Echarts

  1. 在全局的 app.config.js 中添加或者在单个需要使用到 echarts 的页面配置中添加引用组件

{  "usingComponents": {    "ec-canvas": "echarts-for-weixin"  }}
  1. 在页面中引入 echarts,可以从 npm 引入 echarts,也可以引入本地自定义构建的 echarts 以减小体积

import * as echarts from 'echarts' // 从 npm 引入 echartsimport * as echarts from './echarts' // 或者从本地引入自定义构建的 echarts
  1. 将引入的 echarts 传给组件

  1. ec-canvas 的具体用法和如何初始化图表请参考 Echarts 官方小程序示例

示例代码
function initChart(canvas, width, height) {  const chart = echarts.init(canvas, null, {    width: width,    height: height  })  canvas.setChart(chart)  const model = {    yCates: ['Saturday', 'Friday', 'Thursday',      'Wednesday', 'Tuesday', 'Monday',      'Sunday'],    xCates: ['1', '2', '3', '4', '5'],    data: [      // [yCateIndex, xCateIndex, value]      [0, 0, 5], [0, 1, 7], [0, 2, 3], [0, 3, 5], [0, 4, 2],      [1, 0, 1], [1, 1, 2], [1, 2, 4], [1, 3, 8], [1, 4, 2],      [2, 0, 2], [2, 1, 3], [2, 2, 8], [2, 3, 6], [2, 4, 7],      [3, 0, 3], [3, 1, 7], [3, 2, 5], [3, 3, 1], [3, 4, 6],      [4, 0, 3], [4, 1, 2], [4, 2, 7], [4, 3, 8], [4, 4, 9],      [5, 0, 2], [5, 1, 2], [5, 2, 3], [5, 3, 4], [5, 4, 7],      [6, 0, 6], [6, 1, 5], [6, 2, 3], [6, 3, 1], [6, 4, 2]    ]  }  const data = model.data.map(function (item) {    return [item[1], item[0], item[2] || '-']  })  const option = {    tooltip: {      position: 'top'    },    animation: false,    grid: {      bottom: 60,      top: 10,      left: 80    },    xAxis: {      type: 'category',      data: model.xCates    },    yAxis: {      type: 'category',      data: model.yCates    },    visualMap: {      min: 1,      max: 10,      show: false,      calculable: true,      orient: 'horizontal',      left: 'center',      bottom: 10,      inRange: {        color: ['#37A2DA', '#32C5E9', '#67E0E3', '#91F2DE', '#FFDB5C', '#FF9F7F'],      }    },    series: [{      name: 'Punch Card',      type: 'heatmap',      data: data,      label: {        normal: {          show: true        }      },      itemStyle: {        emphasis: {          shadowBlur: 10,          shadowColor: 'rgba(0, 0, 0, 0.5)'        }      }    }]  }  chart.setOption(option)  return chart}export default class Echarts extends React.Component {  state = {    ec: {      onInit: initChart    }  }  render () {    return (                        )  }}

Taro 按需引用

参考代码 examples/taro-manual-load

注意:小程序开发者工具打开的项目目录是打包后的 dist 目录

准备工作

1、安装依赖

npm install echarts-for-weixin

2、在项目根目录中新建文件 project.package.json 或者自定义命名,此文件是小程序的 package.json,并在下一步中添加小程序自定义构建 npm 方式。并配置 config/index.js 中的 copy 选项,将 project.package.json 复制到 dist 目录下并且重命名为 package.json。并且复制 node_modules/echarts-for-weixin 至 dist/node_modules/echarts-for-weixin 避免在小程序开发者工具中打开的项目重新安装依赖

project.package.json

{  "dependencies": {    "echarts-for-weixin": "^1.0.2"  }}

config/index.js

{  copy: {    patterns: [      { from: 'project.package.json', to: 'dist/package.json' }, // 指定需要 copy 的文件      { from: 'node_modules/echarts-for-weixin/', to: 'dist/node_modules/echarts-for-weixin/' }    ],    options: {}  }}

3、在 project.config 的 setting 中添加小程序自定义构建 npm 方式,参考 自定义 node_modules 和 miniprogram_npm 位置的构建 npm 方式

{  "setting": {    "packNpmManually": true,    "packNpmRelationList": [      {        "packageJsonPath": "./package.json",        "miniprogramNpmDistDir": "./"      }    ]  }}

4、执行 Taro 的开发或者打包命令进行项目开发

npm run dev:weapp

5、小程序开发者工具中构建 npm。注意:小程序开发工具打开的项目目录是 dist 文件夹

点击开发者工具中的菜单栏:工具 --> 构建 npm

引入 Echarts

1、在全局的 app.config.js 中添加或者在单个需要使用到 echarts 的页面配置中添加引用组件

{  "usingComponents": {    "ec-canvas": "echarts-for-weixin"  }}

2、在页面中引入 echarts/core 和需要的组件,Taro 打包会只打包引入的组件,这样达到按需引入的目的

// Import the echarts core module, which provides the necessary interfaces for using echarts.import * as echarts from 'echarts/core';// Import charts, all with Chart suffiximport {  // LineChart,  BarChart,  // PieChart,  // ScatterChart,  // RadarChart,  // MapChart,  // TreeChart,  // TreemapChart,  // GraphChart,  // GaugeChart,  // FunnelChart,  // ParallelChart,  // SankeyChart,  // BoxplotChart,  // CandlestickChart,  // EffectScatterChart,  // LinesChart,  // HeatmapChart,  // PictorialBarChart,  // ThemeRiverChart,  // SunburstChart,  // CustomChart,} from 'echarts/charts';// import components, all suffixed with Componentimport {  // GridSimpleComponent,  GridComponent,  // PolarComponent,  // RadarComponent,  // GeoComponent,  // SingleAxisComponent,  // ParallelComponent,  // CalendarComponent,  // GraphicComponent,  // ToolboxComponent,  TooltipComponent,  // AxisPointerComponent,  // BrushComponent,  TitleComponent,  // TimelineComponent,  // MarkPointComponent,  // MarkLineComponent,  // MarkAreaComponent,  // LegendComponent,  // LegendScrollComponent,  // LegendPlainComponent,  // DataZoomComponent,  // DataZoomInsideComponent,  // DataZoomSliderComponent,  // VisualMapComponent,  // VisualMapContinuousComponent,  // VisualMapPiecewiseComponent,  // AriaComponent,  // TransformComponent,  DatasetComponent,} from 'echarts/components';// Import renderer, note that introducing the CanvasRenderer or SVGRenderer is a required stepimport {  CanvasRenderer,  // SVGRenderer,} from 'echarts/renderers';// Register the required componentsecharts.use(  [    TitleComponent,    TooltipComponent,     GridComponent,     BarChart,     CanvasRenderer,     HeatmapChart,     VisualMapComponent,    VisualMapContinuousComponent,    VisualMapPiecewiseComponent,  ]);

3、将引入的 echarts 传给组件

4、ec-canvas 的具体用法和如何初始化图表请参考 Echarts 官方小程序示例

function initChart(canvas, width, height) {  const chart = echarts.init(canvas, null, {    width: width,    height: height  })  canvas.setChart(chart)  const model = {    yCates: ['Saturday', 'Friday', 'Thursday',      'Wednesday', 'Tuesday', 'Monday',      'Sunday'],    xCates: ['1', '2', '3', '4', '5'],    data: [      // [yCateIndex, xCateIndex, value]      [0, 0, 5], [0, 1, 7], [0, 2, 3], [0, 3, 5], [0, 4, 2],      [1, 0, 1], [1, 1, 2], [1, 2, 4], [1, 3, 8], [1, 4, 2],      [2, 0, 2], [2, 1, 3], [2, 2, 8], [2, 3, 6], [2, 4, 7],      [3, 0, 3], [3, 1, 7], [3, 2, 5], [3, 3, 1], [3, 4, 6],      [4, 0, 3], [4, 1, 2], [4, 2, 7], [4, 3, 8], [4, 4, 9],      [5, 0, 2], [5, 1, 2], [5, 2, 3], [5, 3, 4], [5, 4, 7],      [6, 0, 6], [6, 1, 5], [6, 2, 3], [6, 3, 1], [6, 4, 2]    ]  }  const data = model.data.map(function (item) {    return [item[1], item[0], item[2] || '-']  })  const option = {    tooltip: {      position: 'top'    },    animation: false,    grid: {      bottom: 60,      top: 10,      left: 80    },    xAxis: {      type: 'category',      data: model.xCates    },    yAxis: {      type: 'category',      data: model.yCates    },    visualMap: {      min: 1,      max: 10,      show: false,      calculable: true,      orient: 'horizontal',      left: 'center',      bottom: 10,      inRange: {        color: ['#37A2DA', '#32C5E9', '#67E0E3', '#91F2DE', '#FFDB5C', '#FF9F7F'],      }    },    series: [{      name: 'Punch Card',      type: 'heatmap',      data: data,      label: {        normal: {          show: true        }      },      itemStyle: {        emphasis: {          shadowBlur: 10,          shadowColor: 'rgba(0, 0, 0, 0.5)'        }      }    }]  }  chart.setOption(option)  return chart}export default class Echarts extends React.Component {  state = {    ec: {      onInit: initChart    }  }  render () {    return (                        )  }}

5、可以查看小程序开发者工具中的依赖分析,确定文件大小以及是否正确按需引入

到此,相信大家对"微信小程序中怎么安装和引用ECharts"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

程序 开发 工具 项目 开发者 文件 组件 参考 方式 页面 代码 官方 目录 示例 支持 配置 体积 图表 根目录 菜单 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 深圳市人人互联网科技有限公司 科技金融是不是互联网金融 互联网科技巨头监管 厦门中拓互联网络科技有限公司 互联网科技公司官网 科技互联网公司logo 广州善班互联网科技 重庆科技学院互联网 宜昌元轩互联网科技有限公司 未来五年的互联网科技 滨湖区互联网智能科技产品有哪些 元气玛特互联网科技公司是外包吗 互联网第三次科技革命特征 互联网领先科技宣传片 半导体是互联网高科技吗 互联网科技对化妆品行业 平安好医生打造互联网科技医疗 重庆科技产业互联网有哪些 广东猫王互联网科技有限公司电话 广州紫鲸互联网科技有限公司 善班互联网科技 上海致骋互联网科技 睿民互联网科技 盛创互联网科技有限公司 花神(南京)互联网科技有限公司 互联网媒体平台算高科技产业 洛阳昕诺飞互联网科技有限公司 工业互联网科技成果转化 卡尔迅互联网科技有限公司
0