小程序接入Echarts组件库

Posted 陈大六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序接入Echarts组件库相关的知识,希望对你有一定的参考价值。


十年河东,十年河西,莫欺少年穷

2、根据1的描述,下载GitHub文件包,鄙人已下载好

示例代码,我随便放的目录如下:

小程序接入Echarts组件库_柱状图

 3、新建小程序页面,Echars,并引入组件库,组件库大概500KB,因此,建议使用分包技术

Echars.json 中引入组件



{
"usingComponents": {
"ec-canvas": "/utils/Echarts/ec-canvas/ec-canvas"
}
}


4、Echars.js 中引入主类库 ec-canvas/echarts.js



import * as echarts from ../../utils/Echarts/ec-canvas/echarts;// 数据


Echars.js 整体代码如下:


小程序接入Echarts组件库_官网_02小程序接入Echarts组件库_xml_03


// pages/echarts/echarts.js
import * as echarts from ../../utils/Echarts/ec-canvas/echarts;// 数据
var data = [{
X: "12日",
Y: 100
}, {
X: "13日",
Y: 100
}, {
X: "14日",
Y: 100
}, {
X: "15日",
Y: 100
}, {
X: "16日",
Y: 100
}, {
X: "17日",
Y: 100
}, {
X: "18日",
Y: 100
}]
// 存储住首次调用函数的参数 方便后续调用时传参取值
var unit = %
var canvas1 =
var width1 =
var height1 =
var dpr1 =

function initChart(canvas, width, height, dpr) {

canvas1 = canvas
width1 = width
height1 = height
dpr1 = dpr
const chart = echarts.init(canvas, null, {
width: 375,
height: height,
devicePixelRatio: dpr
});
canvas.setChart(chart);


var option = {
color: "#6c5ce7",
tooltip: {
trigger: axis,
axisPointer: {
type: shadow
}
},
grid: {
top: "8%",

},
xAxis: [{
type: category,
data: data.map(A => A.X),
axisTick: {
alignWithLabel: true
}
}],
yAxis: [{
type: value
}],
series: [{
name: Direct,
type: bar,
barWidth: 60%,
data: data.map(A => A.Y),
}]
};
chart.setOption(option);
return chart;

//柱状图

}

Component({
/**
* 组件的属性列表
*/
properties: {
title: {
type: String,
value: ""
}
},

/**
* 组件的初始数据
*/
data: {
ec: {
onInit: initChart
},
},
lifetimes: {
attached: function () {
// 在组件实例进入页面节点树时执行
this.GetData();
}
},
/**
* 组件的方法列表
*/
methods: {
GetData() {
let that = this;
let p = new Promise((resolve, reject) => {
var result = [{
X: "12日",
Y: 96
}, {
X: "13日",
Y: 92
}, {
X: "14日",
Y: 100
}, {
X: "15日",
Y: 90
}, {
X: "16日",
Y: 98
}, {
X: "17日",
Y: 99
}, {
X: "18日",
Y: 97
}];
resolve(result);


})
.then((result) => {
data = result;
})
}
}
})

View Code

这里需要说明的是:

1、Grid 参数



grid: {
top: "8%",
},


可用于页面的布局。设置Ecahts 图表内部距离上右下左的距离。

例如我们修改距离Ecahts 图表顶部线的距离为38%,

小程序接入Echarts组件库_数据_04

 则效果为:

小程序接入Echarts组件库_官网_05

2、ec-canvas.wxml 组件

小程序接入Echarts组件库_数据_06

 可通过修改ec-canvas.wxml 组件的样式或其他内容,来影响项目的Etcahts 图标对外布局。

例如我加了一个margin属性

小程序接入Echarts组件库_官网_07

 那么,整体布局被改变

小程序接入Echarts组件库_xml_08

 

 

 其他参数说明,详见Ecaharts官网:​​https://echarts.apache.org/zh/option.html#title​

小程序接入Echarts组件库_官网_09

 

 最后贴出相关代码

Echarts.wxml 代码如下:



<view class="dxBox">
<view>{{title}}</view>
<view style="color:#727273">今日:2358次</view>
</view>
<view class="table">
<ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ec}}"></ec-canvas>
</view>


样式如下:



/* packageA/component/successlv.wxss */

.table{
width: 100%;
/* width: calc(100% - 52rpx); */
/* height: calc(100vh - 450rpx); */
height: 540rpx;
box-sizing: border-box;
/* padding: 0 26rpx; */
/* margin-left: 26rpx; */
background-color: #fff;
}


.dxBox{
height: 128rpx;
width: 100%;
margin-top: 24rpx;
display: flex;
justify-content: space-between;
align-items: center;
background-color: #fff;
font-size: 28rpx;
color: #303133;
font-weight: 600;
font-family: PingFangSC;
padding: 0 40rpx 0 40rpx;
box-sizing: border-box;
}


效果图如下:

小程序接入Echarts组件库_apache_10

修改Ecahts图表,例如将柱状图修改为饼状图,请参考官网示例,一般情况下,设置Opeions即可 


以上是关于小程序接入Echarts组件库的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段分享

小程序里echarts画的饼图在安卓手机上效果不正常?

微信小程序引入ECharts组件

微信小程序中引用第三方(自定义)组件(Taro版)

微信小程序中引用第三方(自定义)组件(Taro版)

微信小程序代码片段