热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序+Echarts制图详细步骤

1.下载微信开发者工具稳定版StableBuild|微信开放文档(qq.com)https:developers.weixin.qq.comminiprogramdevdevto

1.下载微信开发者工具

稳定版 Stable Build | 微信开放文档 (qq.com)icon-default.png?t=M276https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

 根据自身电脑系统选择下载


2. 新建小程序

安装好后,启动微信开发者工具,点击+号新建小程序

 AppID的话,要么选择自己注册过的ID,要么点击红框中的“测试号”,系统会自动给一个随机ID。模板选择Javascript。然后再点击确定

 

 打开后界面长这样:


 3. 新建页面

右击pages文件夹,选择新建文件夹

 然后右击新建的文件夹“1”,选择新建Page,会自动生成4个文件

 


 4. 引入Echarts组件

关掉小程序。

打开链接,点击克隆,下载组件

mirrors / ecomfe / echarts-for-weixin · GitCodeicon-default.png?t=M276https://gitcode.net/mirrors/ecomfe/echarts-for-weixin?utm_source=csdn_github_accelerator&from_codechina=yes

 复制ec-canvas到小程序文件夹中

 

复制完后:

 


 5. 绘制图表

以折线图为例。

打开小程序项目,编写代码。

点击1.js


import * as echarts from '../../ec-canvas/echarts' // 这个是自己实际的目录
function initChart(canvas, width, height, dpr) { // 这部分是固定的不需要 是通用的const chart = echarts.init(canvas, null, {width: width,height: height});canvas.setChart(chart);// 这是 唯一需要更改的,可根据实际情况api更改图标// option里根据需求修改var option = {color: ['#80FFA5', '#00DDFF', '#37A2FF', '#FF0087', '#FFBF00'],title: {//text: 'Gradient Stacked Area Chart'},tooltip: {trigger: 'axis',axisPointer: {type: 'cross',label: {backgroundColor: '#6a7985'}}},legend: {data: ['Line 1', 'Line 2', 'Line 3', 'Line 4', 'Line 5']},toolbox: {feature: {saveAsImage: {}}},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},xAxis: [{type: 'category',boundaryGap: false,data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']}],yAxis: [{type: 'value'}],series: [{name: 'Line 1',type: 'line',stack: 'Total',smooth: true,lineStyle: {width: 0},showSymbol: false,areaStyle: {opacity: 0.8,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgb(128, 255, 165)'},{offset: 1,color: 'rgb(1, 191, 236)'}])},emphasis: {focus: 'series'},data: [140, 232, 101, 264, 90, 340, 250]},{name: 'Line 2',type: 'line',stack: 'Total',smooth: true,lineStyle: {width: 0},showSymbol: false,areaStyle: {opacity: 0.8,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgb(0, 221, 255)'},{offset: 1,color: 'rgb(77, 119, 255)'}])},emphasis: {focus: 'series'},data: [120, 282, 111, 234, 220, 340, 310]},{name: 'Line 3',type: 'line',stack: 'Total',smooth: true,lineStyle: {width: 0},showSymbol: false,areaStyle: {opacity: 0.8,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgb(55, 162, 255)'},{offset: 1,color: 'rgb(116, 21, 219)'}])},emphasis: {focus: 'series'},data: [320, 132, 201, 334, 190, 130, 220]},{name: 'Line 4',type: 'line',stack: 'Total',smooth: true,lineStyle: {width: 0},showSymbol: false,areaStyle: {opacity: 0.8,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgb(255, 0, 135)'},{offset: 1,color: 'rgb(135, 0, 157)'}])},emphasis: {focus: 'series'},data: [220, 402, 231, 134, 190, 230, 120]},{name: 'Line 5',type: 'line',stack: 'Total',smooth: true,lineStyle: {width: 0},showSymbol: false,label: {show: true,position: 'top'},areaStyle: {opacity: 0.8,color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgb(255, 191, 0)'},{offset: 1,color: 'rgb(224, 62, 76)'}])},emphasis: {focus: 'series'},data: [220, 302, 181, 234, 210, 290, 150]}]};chart.setOption(option);return chart;
}Page({data: {ec: {onInit: initChart}},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})

其中,option中的内容根据选择的图标样式而更改,可以直接从Echarts官网中获取。

全选左边框中的代码,对1.js中的option进行更改即可。

 

1.json

{"usingComponents": {"ec-canvas": "../../ec-canvas/ec-canvas"}
}

1.wxml


1.wxss

/* pages/1/1.wxss */
/**index.wxss**/
ec-canvas {width: 100%; //宽度、高度自行调整height: 70%;}.container {position: absolute;top: 0;bottom: 0;left: 0;right: 0;display: flex;flex-direction: column;align-items: center;justify-content: space-between;box-sizing: border-box;} .picker-pos{margin-top: -130rpx;margin-left: 150rpx;color: blueviolet}

还有很关键的一步,需要修改app.json中的内容,不然你就会发现点击了编译后折线图没有出来,还是维持原来页面。

之前“pages/1/1”在最下面,“pages/index/index”在最上面,会导致小程序先打开index页面,所以1页面中的折线图显示不出来。要把“pages/1/1”挪到最上面

 修改完后重新编译,就会出现折线图了。

 


推荐阅读
author-avatar
mobiledu2502875123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有