效果图

主要实现的功能输入地区和频次查询油价的调整消息

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展示折线图的更多相关文章

  1. 如何在微信小程序中使用ECharts图表

    在微信小程序中使用ECharts 1. 下载插件 首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目. 下载链接:ecomfe/echarts-for-weixi ...

  2. 微信小程序中使用ECharts 异步加载数据 实现图表

    <!--pages/bar/index.wxml--> <view class="container"> <ec-canvas id="my ...

  3. 在微信小程序中使用 echarts 图片-例 折线图

    首先进入echarts官方[https://echarts.apache.org/handbook/zh/get-started/].这边只需要在小程序中简单应用一下echarts折线图 所以不需要把 ...

  4. 微信小程序中使用wxParse展示HTML内容

    wxParse的GitHub地址:https://github.com/icindy/wxParse 一.数据内容: 请求地址:https://m.quanchepin.com/index.php?a ...

  5. 微信小程序中使用echarts

    一.效果图 二.代码 import * as echarts from '../../component/ec-canvas/echarts'; const app = getApp(); var x ...

  6. 微信小程序中自定义swiper轮播图面板指示点的样式

    重置样式: .swiper{ width: 100%; height: 240px; margin-bottom: 0.5rem; position:relative; } div.wx-swiper ...

  7. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

    在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...

  8. 在微信小程序中使用富文本转化插件wxParse

    在微信小程序中我们往往需要展示一些丰富的页面内容,包括图片.文本等,基本上要求能够解析常规的HTML最好,由于微信的视图标签和HTML标签不一样,但是也有相对应的关系,因此有人把HTML转换做成了一个 ...

  9. 微信小程序中的组件使用1

    不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...

  10. 全栈开发工程师微信小程序-中(中)

    全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...

随机推荐

  1. Linux 驱动需要考虑的同步问题

    --- title: Linux 驱动需要考虑的同步问题 date: 2020-06-22 07:21:32 categories: tags: - ipc - linux - kernel - dr ...

  2. FPGA案例开发手册——基于全志T3+Logos FPGA核心板

    前 言 本文档主要提供评估板FPGA端案例测试方法,适用的开发环境为Windows 7 64bit和Windows 10 64bit. 本文案例基于创龙科技的全志T3+Logos FPGA核心板,它是 ...

  3. 中间件-Nginx

    一.nginx反向代理 输入 http://xxx.com/plat/login 跳转: http://localhost:8383/plat/login 将某个指定的域名代理到指定的服务 http: ...

  4. win10 搭建 npm 环境

    前言 最近,根据CSDN和博客园等文章的帮助下,搭建了一个npm的环境,现在将搭建过程记录下来,留作参考. 搭建过程 下载nodejs,我是使用的zip包安装的,安装包官网地址https://node ...

  5. 【算法】用c#实现自定义字符串编码及围栏解码方法

    编写一个函数/方法,它接受2个参数.一个字符串和轨道数,并返回ENCODED字符串. 编写第二个函数/方法,它接受2个参数.一个编码字符串和轨道数,并返回DECODED字符串. 然后使用围栏密码对其进 ...

  6. 解决方案 | xpdf4.04支持中文pdf识别与转换(pdf提取txt)

    一.下载地址 按照参考链接将xpdf4.04(含有xpdf-chinese-simplified包)已经打包好,下载链接如下: https://www.123pan.com/s/9Rn9-eEQpH. ...

  7. UE4 WebUI使用指南2-通信

    前面一篇WebUI的文章讲述的WebUI插件的下载,开启,在UE中创建,加载网页等. 本文继续讲述通过WebUI,UE和网页实现双向通信的实现思路. 一点说明 由于WebUI 使用的浏览器内核并不是最 ...

  8. 【VMware VCF】VMware Cloud Foundation Part 02:部署 Cloud Builder。

    VMware Cloud Builder 是用于构建 VMware Cloud Foundation 第一个管理域的自动化部署工具,通过将一个预定义信息的 Excel 参数表导入到 Cloud Bui ...

  9. 数据分析应该掌握的知识及SQL技能

    一.概念及常识 1.数据分析必备的统计学知识 描述统计学 1.平均值.中位数.众数 2.方差.标准差 3.统计分布:正态分布.指数分布.二项分布.卡方分布 推论统计学 1.假设检验 2.置信区间 3. ...

  10. Python 实现Excel和TXT文本格式之间的相互转换

    Excel是一种具有强大的数据处理和图表制作功能的电子表格文件,而TXT则是一种简单通用.易于编辑的纯文本文件.将Excel转换为TXT可以帮助我们将复杂的数据表格以文本的形式保存,方便其他程序读取和 ...