微信小程序中使用Echarts展示折线图
效果图
主要实现的功能输入地区和频次查询油价的调整消息


1.从echarts-for-weixin官网下载文件

2.项目中引入echarts
将整个文件夹放在项目pages同级的目录下面

import * as echarts from '../../ec-canvas/echarts.js';
3.在微信小程序中使用
在Page.data中定义接收的数据
请求并处理数据

initpie()方法

setOption()方法 折线图配置项

ts文件
Page({
/**
* 页面的初始数据
*/
onShareAppMessage: function (res) {
return {
title: 'ECharts 可以在微信小程序中使用啦!',
path: '/pages/index/index',
success: function () { },
fail: function () { }
}
},
data: {
OliData: [],
_num: 0,
show: false,
number: 3,
area: "重庆",
color: "#f7f7fb",
ec: {
//onInit: initChart //关闭自动加载
// 将 lazyLoad 设为 true 后,需要手动初始化图表
lazyLoad: true
},
xData:[],
y89:[],
y92:[],
y95:[],
onReady() {
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
// onShareAppMessage() {
// },
setOption(chart:any,piedata:any){
var option = {
title: {
text: '油价趋势图',
left: 'center'
},
legend: {
data: ['89', '92', '95'],
top: 50,
left: 'center',
backgroundColor: '#c0ebd7',
z: 10
},
grid: {
containLabel: true
},
tooltip: {
show: true,
trigger: 'axis'
},
xAxis: {
type: 'category',
boundaryGap: false,
data:piedata[0],
// show: false
},
yAxis: {
x: 'center',
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
},
min: 'dataMin' //设置最小刻度为数据中的最小值
// show: false
},
series: [{
name: '89',
type: 'line',
smooth: true,//是否是光滑的曲线
data: piedata[1]
}, {
name: '92',
type: 'line',
smooth: true,
data: piedata[2]
}, {
name: '95',
type: 'line',
smooth: true,
// data: [10, 30, 31, 50, 40, 20, 10]
data: piedata[3]
}]
};
chart.setOption(option);
return chart;
},
inittpie(echartsData:any){
//获取折线图组件
let compent= this.selectComponent('#mychart-dom-line');
compent.init((canvas, width, height, dpr)=> {
const chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr // new
});
//调用设定EChart报表状态的函数,并且把从后端拿到的数据传过去
this.setOption(chart,echartsData);
// 注意这里一定要返回 chart 实例,否则会影响事件处理等
return chart;
})
},
OliSearch() {
var that = this;
wx.request({
url: 'https://*****=(CITYNAME="' + that.data.area + '")&pageNumber=1&pageSize=' + that.data.number + '',
header: {
'content-type': 'application/json'
},
method: 'GET',
success: function (res) {
let mu:any = [];//Table数据
var xd:any=[];//X轴数据
var y89:any=[];//y轴89号汽油数据
var y92:any=[];//y轴92号汽油数据
var y95:any=[];//y轴95号汽油数据
res.data.result.data.forEach(element => {
var de = {
area: element.CITYNAME, datetime: element.DIM_DATE.substr(0,10),
V89: element.V89, V92: element.V92, V95: element.V95
};
mu.push(de);
xd.push(element.DIM_DATE.substr(0,10));
y89.push(element.V89);
y92.push(element.V92);
y95.push(element.V95);
});
that.setData({
OliData: mu,
xData:xd,
y89: y89,
y92: y92,
y95: y95,
})
// 在这里解析数据并渲染到页面上
var da=[xd.reverse(),y89.reverse(),y92.reverse(),y95.reverse()]
//调用初始化图形的方法
that.inittpie(da);
},
fail: function (error) {
// 请求失败,处理错误
console.log(error);
}
})
},
onChange(s:any) {
console.log(s.detail)
},
onClick() {
this.setData({
show: true,
});
},
onClose() {
this.setData({
show: false,
});
},
onFinish(e) {
const { selectedOptions, value } = e.detail;
const fieldValue = selectedOptions
.map((option:any) => option.text || option.name)
.join('/');
this.setData({
fieldValue,
cascaderValue: value,
show: false
})
},
onInput(event:any) {
this.setData({
currentDate: event.detail,
});
},
})
import * as echarts from '../../ec-canvas/echarts.js';
wxml文件
<van-row>
<van-col span="24">
<van-cell-group>
<van-field model:value="{{ area }}" required clearable label="地区" placeholder="请输入地区 默认重庆" border="{{ true }}" />
<van-field model:value="{{ number }}" label="频次" placeholder="请输入调整的频次 默认3次" border="{{ true }}" />
</van-cell-group>
</van-col>
</van-row>
<van-row>
<van-col offset="10" span="8">
<van-button type="info" bind:click="OliSearch">查询</van-button>
</van-col>
</van-row>
//加载折线图
<view class="container" wx:if="{{OliData.length>0}}">
<ec-canvas style="width: 100%; height: 500px;margin-top: -100px;" id="mychart-dom-line" canvas-id="mychart-line" ec="{{ ec }}" />
</view>
json文件
"usingComponents": {
"ec-canvas": "/ec-canvas/ec-canvas"
}
感谢这两位大佬的文章指点:
微信小程序使用echarts动态获取数据
微信小程序中使用ECharts--折线图、柱状图、饼图
微信小程序中使用Echarts展示折线图的更多相关文章
- 如何在微信小程序中使用ECharts图表
在微信小程序中使用ECharts 1. 下载插件 首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目. 下载链接:ecomfe/echarts-for-weixi ...
- 微信小程序中使用ECharts 异步加载数据 实现图表
<!--pages/bar/index.wxml--> <view class="container"> <ec-canvas id="my ...
- 在微信小程序中使用 echarts 图片-例 折线图
首先进入echarts官方[https://echarts.apache.org/handbook/zh/get-started/].这边只需要在小程序中简单应用一下echarts折线图 所以不需要把 ...
- 微信小程序中使用wxParse展示HTML内容
wxParse的GitHub地址:https://github.com/icindy/wxParse 一.数据内容: 请求地址:https://m.quanchepin.com/index.php?a ...
- 微信小程序中使用echarts
一.效果图 二.代码 import * as echarts from '../../component/ec-canvas/echarts'; const app = getApp(); var x ...
- 微信小程序中自定义swiper轮播图面板指示点的样式
重置样式: .swiper{ width: 100%; height: 240px; margin-bottom: 0.5rem; position:relative; } div.wx-swiper ...
- 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...
- 在微信小程序中使用富文本转化插件wxParse
在微信小程序中我们往往需要展示一些丰富的页面内容,包括图片.文本等,基本上要求能够解析常规的HTML最好,由于微信的视图标签和HTML标签不一样,但是也有相对应的关系,因此有人把HTML转换做成了一个 ...
- 微信小程序中的组件使用1
不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...
- 全栈开发工程师微信小程序-中(中)
全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...
随机推荐
- ZYNQ Linux使用SPI驱动
--- title: ZYNQ Linux使用SPI驱动 EntryName: xilinx-zynq-using-spi-driver-in-linux date: 2020-10-14 10:02 ...
- 全国产!全志A40i+Logos FPGA核心板(4核ARM Cortex-A7)硬件说明
硬件资源 SOM-TLA40iF核心板板载ARM.FPGA.ROM.RAM.晶振.电源.LED等硬件资源,并通过B2B连接方式引出IO.核心板所有器件(包括B2B连接器)均采用国产工业级方案,国产化率 ...
- Spring 常见的事务管理、事务的传播特性、隔离级别
事务管理 事务:多个操作,要么同时成功,要么失败后一起回滚 具备ACID四种特性 Atomic(原子性) Consistency(一致性) lsolation(隔离性) Durablility(持久性 ...
- mac电脑好用的工具总结
制作gif:https://gfycat.com/gifbrewery 制作gif(超级好用,制作速度快,压缩图片小):https://www.cockos.com/licecap/ 解压工具:htt ...
- 可视化学习:如何用WebGL绘制3D物体
在之前的文章中,我们使用WebGL绘制了很多二维的图形和图像,在学习2D绘图的时候,我们提过很多次关于GPU的高效渲染,但是2D图形的绘制只展示了WebGL部分的能力,WebGL更强大的地方在于,它可 ...
- 在github开源市场如何高效寻找优秀开源项目
作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢? 常用的开源网站有:github 和 gitee github是全球最大的开源社区,今天就以github为例, ...
- 使用GSAP制作动画视频
GSAP 3Blue1Brown给我留下了深刻印象.利用动画制作视频,内容简洁,演示清晰.前两天刚好碰到一件事,我就顺便学习了一下怎么用代码做动画. 以javascrip为例,有两个动画引擎,GSAP ...
- XR实时云渲染:助力虚拟仿真实训教学呈现
近年来以5G.云计算.大数据.物联网.人工智能.虚拟现实/增强现实为代表的新兴技术迅速发展加速创新,日益融入经济社会发展各领域全过程,世界主要国家和地区纷纷加快数字化转型战略布局. 虚拟仿真系统是一种 ...
- Python threading实现多线程 基础篇
讲多线程前,先要了解什么是进程,什么是线程,已经知道的请略过. 一.进程与线程: 进程是资源分配的最小单位,一个程序至少有一个进程. 线程是程序执行的最小单位,一个进程至少有一个线程. 进程都有自己独 ...
- 交叉熵、KL 散度 | 定义与相互关系
1 KL 散度 对于离散概率分布 \(P\) 和 \(Q\) ,KL 散度定义为: \[\text{KL}(P \| Q) = -E_{x\sim P}\log P(x)-\log Q(x) \\ = ...