在原生微信小程序中使用 echarts

在原生微信小程序中使用 echarts

现在越来越多的项目都在使用可视化的功能,那么使用 echarts 实现是一种不错的选择,本文将带给大家如何在原生微信小程序中使用 echarts,保姆级教程

一、下载微信小程序版本 echarts 文件

文件地址:https://github.com/ecomfe/echarts-for-weixin/tree/master

image-20230513135005534

二、引入echarts

1.创建一个微信小程序项目或打开已有的微信小程序项目,下述示例采用全新创建的方式,在电脑文件中创建一个空的文件夹,命名自定义即可

image-20230513135033888

2.将下载好的 echarts 文件放入创建好的空文件中

image-20230513135050827

3.使用微信开发者工具打开创建的文件夹

4.查看创建结果

image-20230513135148225

三、使用前处理事项(萌新看——老手略过)

1.需要找到 app.wxss 文件中,将默认给 container 的代码注释或清空,或者后续容器不使用 container 类名

image-20230513135308220

2.如果是新建项目可以删除默认生成的页面文件

image-20230513135240466

3.并修改 app.json 文件中的 pages 配置选项

image-20230513135332271

image-20230513135347259

四、在项目中使用 echarts 文件

1.在页面的 json文件中引入 echarts.js 文件

{
	"usingComponents":{
		// 引入目录以自己当前项目的路径为准,省略后缀.js
		"ec-canvas":"../../ec-canvas/ec-canvas" 
	}
}

2.在页面的 wxml 文件中创建 dom 结构及使用

<!-- 创建容器-此区域用于展示图表 -->
<view class="container">
  <!-- 使用 ec-canvas 组件,此处的命名为引入组件路径前面的定义 key 键的名字 -->
  <!-- 需要设置 id canvas-id ec 三个属性 -->
  <!-- id canvas-id ec名称可以自己定义,符合命名规范即可 -->
  <ec-canvas id="myChart" canvas-id="myChart" ec="{{ec}}"></ec-canvas>
</view>

3.在页面的 wxss 文件中为容器定义大小与样式

/* 定义容器大小 */
.container{
  width: 100%;
  height: 500rpx;
  background-color: bisque;
}

/* ec-canvas 组件宽高与父元素一致即可 */
ec-canvas{
  width: 100%;
  height: 500rpx;
}

4.其中 ec 是一个我们在 index.js 中定义的对象,它使得图表能够在页面加载后被初始化并设置,在页面的 js 文件中使用 echarts

// 引入 echarts 文件
import * as echarts from '../../ec-canvas/echarts';

// 定义 initChart 方法
// initChart 需要传递四个参数 canvas, width, height, dpr
function initChart(canvas, width, height, dpr) {
  // 使用引入的 echarts的init方法对 chart 变量赋值进行初始化
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height,
    devicePixelRatio: dpr // 像素
  });

  canvas.setChart(chart);
	
  // 此为配置项。配置图表展现样式与数据
  var option = {};

  chart.setOption(option);

  return chart;
}

Page({
  data: {
    // 此处的ec名称与wxml结构中命名保持一致
    ec: {
      // 使用 onInit 方法定义
      onInit: initChart
    }
  }
});

5.此时我们的 option 配置项还是为空,接下来我们可以配置一下,进入 echarts 官网,进入示例,https://echarts.apache.org/examples/zh/index.html

6.选择自己需要的图表,点击进入,本示例使用柱形图作为示范

image-20230513135841873

7.复制配置项

image-20230513141932932

8.将复制的配置项放入我们代码的 option 配置项中

// 引入 echarts 文件
import * as echarts from '../../ec-canvas/echarts';

// 定义 initChart 方法
// initChart 需要传递四个参数 canvas, width, height, dpr
function initChart(canvas, width, height, dpr) {
  // 使用引入的 echarts的init方法对 chart 变量赋值进行初始化
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height,
    devicePixelRatio: dpr // 像素
  });

  canvas.setChart(chart);

  var option =  {
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        data: [150, 230, 224, 218, 135, 147, 260],
        type: 'line'
      }
    ]
  }

  chart.setOption(option);

  return chart;
}

Page({
  data: {
    // 此处的ec名称与wxml结构中命名保持一致
    ec: {
      // 使用 onInit 方法定义
      onInit: initChart
    }
  }
});

9.现在也就可以展示出图表,如果需要更换其他图表更换 option 的配置项即可

image-20230513142136286

五、结语

以上就是 echarts 在小程序中基本的使用方法,如果需要自己定义图表的样式可以参考文档进行个性化的定制:https://echarts.apache.org/zh/option.html
就可以展示出图表,如果需要更换其他图表更换 option 的配置项即可

[外链图片转存中...(img-2TXBNgcO-1683960179758)]

## 五、结语

以上就是 echarts 在小程序中基本的使用方法,如果需要自己定义图表的样式可以参考文档进行个性化的定制:https://echarts.apache.org/zh/option.html

<think>好的,用户想知道如何在原生微信小程序中集成并使用ECharts进行图表定制。我需要根据提供的引用内容整理出一个步骤清晰的指南。 首先,引用1、2、3都提到了需要下载echarts-for-weixin项目,并复制ec-canvas文件夹到小程序目录。这应该是第一步。用户需要从GitHub下载,然后解压,找到ec-canvas文件夹,放到项目根目录下,这样后面的路径引用才正确。 接下来,配置JSON文件。根据引用2,需要在页面的json文件中引入ec-canvas组件。这一步很关键,否则组件无法使用。用户需要在对应页面的json里添加usingComponents的配置,指向ec-canvas的位置。 然后,在WXML中添加ec-canvas组件。引用2和4提到了在页面中放置ec-canvas标签,并设置id和样式。这里可能需要设置canvas-id和样式,确保图表显示正确的大小。用户可能需要注意样式的宽度和高度,避免图表显示不全。 接下来是初始化图表。引用5中的代码示例显示需要引入echarts,并在js文件中定义图表配置。用户需要在页面的js里引入ec-canvas/echarts,然后定义initChart函数,设置option。这里可能需要详细说明option的结构,或者提供常见的配置示例,比如折线图、柱状图等。 动态数据加载方面,引用4和5提到了从API获取数据后更新图表。用户需要知道如何将获取的数据赋值给option的series.data,然后调用setOption方法更新图表。这里可能需要示例代码,展示如何通过setData更新数据,并调用图表实例的setOption。 另外,引用4还提到了微信运动数据的解密和后端API的调用,但用户的问题主要是集成ECharts,这部分可能不需要详细展开,除非用户有动态数据的需求,可以简要提及如何结合数据更新图表。 最后,注意事项部分需要提到版本兼容性,可能不同版本的ECharts和小程序基础库会有问题。引用3提到不要用npm安装,而是直接复制ec-canvas,这点很重要,避免用户走错步骤。 可能还需要生成相关问题,帮助用户进一步学习,比如如何动态加载数据、常见配置有哪些,或者性能优化方法。这些问题应该基于引用内容,比如引用4中的动态数据步骤,引用5中的代码示例,以及性能方面的考虑。 总之,整理步骤应该是:下载组件、配置组件、页面添加标签、初始化图表、动态数据绑定,然后注意事项和相关问题。确保每一步都有对应的引用支持,比如引用2的配置和代码示例,引用5的导入语句。需要检查是否有遗漏的步骤,比如解密数据可能不在集成范围内,但动态加载数据部分需要涉及。</think>### 如何在原生微信小程序中集成和配置 ECharts #### 1. **下载 ECharts 小程序版本** - 从 GitHub 获取官方适配的 `echarts-for-weixin` 项目[^3],解压后复制 `ec-canvas` 文件夹到小程序根目录(或其他路径,需保持引用路径一致)[^2][^3]。 #### 2. **配置页面 JSON 文件** - 在需要使用图表的页面(如 `pages/chart/chart.json`)中引入 `ec-canvas` 组件: ```json { "usingComponents": { "ec-canvas": "../../ec-canvas/ec-canvas" } } ``` #### 3. **添加图表容器** - 在页面的 WXML 文件(如 `pages/chart/chart.wxml`)中添加组件标签,并指定画布 ID 和样式: ```html <ec-canvas id="my-chart" canvas-id="chart" ec="{{ ec }}"></ec-canvas> ``` 需通过 CSS 设置画布宽高(如 `width: 100%; height: 400px;`)[^4]。 #### 4. **初始化图表** - **引入 ECharts**:在页面 JS 文件顶部导入模块: ```javascript import * as echarts from '../../ec-canvas/echarts'; // 路径需与实际存放位置一致[^5] ``` - **定义配置对象**: ```javascript Page({ data: { ec: { lazyLoad: true } }, // 启用懒加载 onReady() { this.initChart(); }, initChart() { const chartComponent = this.selectComponent('#my-chart'); chartComponent.init((canvas, width, height) => { const chart = echarts.init(canvas, null, { width, height }); const option = { xAxis: { type: 'category', data: ['周一', '周二', '周三'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150], type: 'line' }] }; chart.setOption(option); return chart; }); } }); ``` #### 5. **动态数据加载** - 若需动态更新数据(如从接口获取),在数据请求成功后调用 `setOption`: ```javascript // 示例:模拟异步数据加载 fetchData().then(res => { const newData = res.data; const chart = this.selectComponent('#my-chart').getEchartsInstance(); chart.setOption({ series: [{ data: newData }] }); }); ``` #### 注意事项 - **版本兼容性**:确保使用的 `echarts-for-weixin` 版本与小程序基础库兼容[^3]。 - **性能优化**:复杂图表建议启用 `lazyLoad` 延迟渲染。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值