微信小程序中使用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" 时生效, ...
随机推荐
- Linux系统的硬件信息
查看Linux系统的硬件信息 [1]查看内核信息 uname 用于显示系统的内核信息 option -s:显示内核名称 -r:显示内核版本 [root@bogon /]# uname -a Linux ...
- Golang 依赖注入设计哲学|12.6K 🌟 的依赖注入库 wire
一.前言 线上项目往往依赖非常多的具备特定能力的资源,如:DB.MQ.各种中间件,以及随着项目业务的复杂化,单一项目内,业务模块也逐渐增多,如何高效.整洁管理各种资源十分重要. 本文从"术& ...
- Git ignore 忽略文件不起作用
前提:拉取了项目上的代码,或者自己本地已经提交过了的文件.然后在 .gitignore 文件中添加了过滤,但是不管用,还是可以追踪 解决方案: 1.先删除本地的文件(可以备份到其他文件夹外) 2.然后 ...
- opc ua设备数据 转MQTT项目案例
目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 配置VFBOX网关采集OPC UA的数据 2 5 用MQTT协议转发数据 4 6 配置参数说明 4 7 上报内容配置 5 ...
- PHP 程序员是学 Swoole ?还是学 Go ?
大家好,我是码农先森. 面临现状 这次为什么要讨论这个话题,因为 Swoole 和 Go 在 PHP 程序员坊间一直都是茶语饭后的谈资,觉得懂 Swoole 和 Go 的就高人一等.相信有很多的 PH ...
- 让摄像头带上智慧“智驭视界·AIEye”
接上一篇<物联网浏览器(IoTBrowser)-基于计算机视觉开发的应用"智慧眼AIEye">,经过AI的包装很高级,确实很屌炸天. 智驭视界·AIEye 在科技赋能的 ...
- 基于微信小程序+Springboot校园二手商城系统设计和实现
\n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 一. 前言介绍: 在当今社会的高速发展过程中,产生的劳动力越来越大,提高人们的生活水平和质 ...
- Prometheus 使用Python推送指标数据到Pushgateway
使用Python推送指标数据到Pushgateway 需求描述 实践环境 Python 3.6.5 Django 3.0.6 prometheus-client 0.11.0 代码实现 !/usr/b ...
- Known框架实战演练——进销存框架搭建
本文介绍如何使用Known开发框架搭建进销存管理系统的项目结构,以及开发前的一些配置和基础代码. 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite ...
- vue8小时带刻度的时间轴,根据当前时间实时定位
效果图: 需求: 1 开始时间.结束时间可配置2 时差固定8小时3 根据当前时间初始化位置4 每隔5s刷新位置5 超过结束时间停止刷新 HTML: <div class="time-a ...