微信小程序中使用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" 时生效, ...
随机推荐
- QT学习:01 工程文件详解
--- title: framework-cpp-qt-01-工程文件详解 EntryName: framework-cpp-qt-01-project-file date: 2020-04-08 1 ...
- C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏
前言 今天大姚给大家分享一款由C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏:SeeSharpSnake. 项目特点 该仓库中的项目文件和脚本可以用多种不同的配置构建相同的游戏,每个配置生成的输出大 ...
- 三屏异显案例分享,基于全国产RK3568J工业平台!
在工业领域中,能否更灵活.更高效地在主屏幕进行主要任务,并在其他副屏幕上进行其他次要任务(例如查看参考资料.监控其他应用程序),一直都是许多工业领域客户面临的刚需,而"多屏异显"功 ...
- DASCTF X GFCTF 2024|四月开启第一局 [PWN]详解
DASCTF X GFCTF 2024|四月开启第一局[PWN] wp(详解) 1.dynamic_but_static 题目保护情况 64位程序,没有开canary和pie保护,got表可改 64位 ...
- dubbo面试题及答案
Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目. 面试官问你如果这个都不清楚,那下面的就没必要问了. 官网:ht ...
- Oracle 递归拼接字段
效果 sql SELECT LISTAGG(T.NAME, ' / ') WITHIN GROUP(ORDER BY LEVEL DESC) AS RESULT FROM S_WORK_RESOURS ...
- 洛谷P1003
洛谷P1003 题目大意 简而言之就是在坐标轴上铺地毯,根据输入的坐标将地毯放在坐标轴上,然后最后给出一个坐标,找到铺在这个坐标上最上面的地毯编号 Train of thought 首先我们应该找到每 ...
- 小产品,快变现,Solo社区共建者 James 专访
采访人:徐小夕. 本次受邀采访的嘉宾是Solo社区计划负责人&Solo社区联合创建者 James Pan(老潘). 专访内容 1. Solo社区创建的背景 随着国内软件市场内卷加剧,加上大环境 ...
- SQL Server 新增函数大全(各版本)
SQL Server 2017 CONCAT_WS ( separator, argument1, argument2 [, argumentN]... ) --采用可变数量的字符串自变量,并将它们串 ...
- c语言的编译与调试
1. GCC/G++ gcc和g++是GNU Compiler Collection中的编译器,分别用于编译C和C++程序.它们的编译过程主要包括四个步骤:预处理(Pre-Processing).编译 ...