您好,欢迎来到养宠指南。
搜索
您的当前位置:首页

小程序中使用ECharts异步加载数据

2022-06-15 来源:养宠指南
摘要
链接: https://pan.baidu.com/s/1W5Z-QWm1gNJGw9oX5CltDQ    提取码:vb0i   我是跟pages放在了同级                     &nbsp

这篇文章主要介绍了关于小程序中使用ECharts 异步加载数据 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

官网例子都是同步的,怎么引入及同步demo请移步官网

import * as echarts from '../../ec-canvas/echarts';Page({ data: { ecBar: { lazyLoad: true // 延迟加载 }, ecScatter: { lazyLoad: true } }, onLoad(){ this.barComponent = this.selectComponent('#mychart-dom-multi-bar'); this.scaComponnet = this.selectComponent('#mychart-dom-multi-scatter'); this.init_bar(); this.init_sca(); }, init_bar: function (){ this.barComponent.init((canvas, width, height) => { // 初始化图表 const barChart = echarts.init(canvas, null, { width: width, height: height }); barChart.setOption(this.getBarOption()); // 注意这里一定要返回 chart 实例,否则会影响事件处理等 return barChart; }); }, init_sca: function () { this.scaComponnet.init((canvas, width, height) => { // 初始化图表 const scaChart = echarts.init(canvas, null, { width: width, height: height }); scaChart.setOption(this.getScaOption()); // 注意这里一定要返回 chart 实例,否则会影响事件处理等 return scaChart; }); }, getBarOption:function(){ //return 请求数据 return { color: ['#37a2da', '#32c5e9', '#67e0e3'], tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, legend: { data: ['热度', '正面', '负面'] }, grid: { left: 20, right: 20, bottom: 15, top: 40, containLabel: true }, xAxis: [ { type: 'value', axisLine: { lineStyle: { color: '#999' } }, axisLabel: { color: '#666' } } ], yAxis: [ { type: 'category', axisTick: { show: false }, data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'], axisLine: { lineStyle: { color: '#999' } }, axisLabel: { color: '#666' } } ], series: [ { name: '热度', type: 'bar', label: { normal: { show: true, position: 'inside' } }, data: [300, 270, 340, 344, 300, 320, 310] }, { name: '正面', type: 'bar', stack: '总量', label: { normal: { show: true } }, data: [120, 102, 141, 174, 190, 250, 220] }, { name: '负面', type: 'bar', stack: '总量', label: { normal: { show: true, position: 'left' } }, data: [-20, -32, -21, -34, -90, -130, -110] } ] }; }, getScaOption:function(){ //请求数据 var data = []; var data2 = []; for (var i = 0; i < 10; i++) { data.push( [ Math.round(Math.random() * 100), Math.round(Math.random() * 100), Math.round(Math.random() * 40) ] ); data2.push( [ Math.round(Math.random() * 100), Math.round(Math.random() * 100), Math.round(Math.random() * 100) ] ); } var axisCommon = { axisLabel: { textStyle: { color: '#C8C8C8' } }, axisTick: { lineStyle: { color: '#fff' } }, axisLine: { lineStyle: { color: '#C8C8C8' } }, splitLine: { lineStyle: { color: '#C8C8C8', type: 'solid' } } }; return { color: ["#FF7070", "#60B6E3"], backgroundColor: '#eee', xAxis: axisCommon, yAxis: axisCommon, legend: { data: ['aaaa', 'bbbb'] }, visualMap: { show: false, max: 100, inRange: { symbolSize: [20, 70] } }, series: [{ type: 'scatter', name: 'aaaa', data: data }, { name: 'bbbb', type: 'scatter', data: data2 } ], animationDelay: function (idx) { return idx * 50; }, animationEasing: 'elasticOut' }; },});

注意:异步加载时,ec-canvas标签加载显示要先于this.scaComponnet.init,否则会报错。

小编还为您整理了以下内容,可能对您也有帮助:

微信小程序使用echarts图表异步加载数据(调接口显示返回数据)

链接: https://pan.baidu.com/s/1W5Z-QWm1gNJGw9oX5CltDQ

 

   提取码:vb0i

  

 我是跟pages放在了同级

                                          

 如:在 page目录的cc页面中使用echarts的话,需要在cc.json中添加以下配置。

echarts中实现动态加载series下data数据

如上图。data位置看似字符串其实是对象形式的。(jsonarray对象)

var Lista = resultData.UserdevicesData;   //如果说这个是我从后台获取到的用户设备信息

下面我要将其装成jsonarray格式的,

var jsonstr = [];

for(var j=0;j<Lista.length;j++){

var json = {};

json.name = Lista[j].devicetype;

json.value = Lista[j].count;

jsonstr.push(json);

}

me.dataArr=jsonstr;//这个就可以直接使用了,实现动态数据。

小程序echarts

一、引入ec-canvas文件
https://github.com/ecomfe/echarts-for-weixin
“ec-canvas”
二、配置json
{
"usingComponents":{
"ec-canvas":"../../ec-canvas/ec-canvas"
}
}
三、书写结构

<view class="container log-list">
<ec-canvas id="mychart-dom-line" canvas-id="mychart-line" ec="{{ec}}"></ec-canvas>
</view>
四、js文件
//logs.js
const util = require('../../utils/util.js')
import * as echarts from '../../ec-canvas/echarts'
const app = getApp()
function initChart(canvas,width,height){
const chart = echarts.init(canvas,null,{
width:width,
height:height
})
canvas.setChart(chart)
var option = {
color:["#37A2DA","#67E0E3","#9FE6B8"],
legend:{
data:["A","B","C"],
top:20,
left:"center",
z:100
},
grid:{
left:"3%",
right:"4%",
bottom:"3%",
containLabel:true
},
xAxis:{
type:"category",
boundaryGap:false,
data:["周一","周二","周三","周四","周五","周六","周日"]

}
chart.setOption(option)
return chart
}
Page({
onShareAppMessage:function(res){
return{
title:"Echarts",
path:"/pages/index/index",
success:function(){},
fail:function(){}
}
},
data: {
ec:{
onInit:initChart
},
logs: []
},
onReady(){},
onLoad: function () {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(log => {
return util.formatTime(new Date(log))
})
})
}
})

小程序echarts

一、引入ec-canvas文件
https://github.com/ecomfe/echarts-for-weixin
“ec-canvas”
二、配置json
{
"usingComponents":{
"ec-canvas":"../../ec-canvas/ec-canvas"
}
}
三、书写结构

<view class="container log-list">
<ec-canvas id="mychart-dom-line" canvas-id="mychart-line" ec="{{ec}}"></ec-canvas>
</view>
四、js文件
//logs.js
const util = require('../../utils/util.js')
import * as echarts from '../../ec-canvas/echarts'
const app = getApp()
function initChart(canvas,width,height){
const chart = echarts.init(canvas,null,{
width:width,
height:height
})
canvas.setChart(chart)
var option = {
color:["#37A2DA","#67E0E3","#9FE6B8"],
legend:{
data:["A","B","C"],
top:20,
left:"center",
z:100
},
grid:{
left:"3%",
right:"4%",
bottom:"3%",
containLabel:true
},
xAxis:{
type:"category",
boundaryGap:false,
data:["周一","周二","周三","周四","周五","周六","周日"]

}
chart.setOption(option)
return chart
}
Page({
onShareAppMessage:function(res){
return{
title:"Echarts",
path:"/pages/index/index",
success:function(){},
fail:function(){}
}
},
data: {
ec:{
onInit:initChart
},
logs: []
},
onReady(){},
onLoad: function () {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(log => {
return util.formatTime(new Date(log))
})
})
}
})

用java、jQuery、mysql怎么实现echarts地图异步加载数据。

查看回滚段名称及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id =

如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)_jquery

ECharts地图主要用于地理区域数据的可视化,展示不同区域的数据分布信息。ECharts官网提供了中国地图、世界地图等地图数据下载,通过js引入或异步加载json文件的形式调用地图。

效果演示 源码下载

本文将结合实例讲解如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据,我们以中国地图为例,展示去年(2015年)我国各省份GDP数据。通过异步请求php,读取mysql中的数据,然后展示在地图上,因此本文除了你掌握前端知识外,还需要你了解PHP以及MySQL方面的相关知识。

HTML

首先在页面中需要加载地图的位置放上div#myChart。

然后是加载Echarts和中国地图js文件。由于本文实例中应用了异步ajax加载数据,所以需要加载jQuery库文件。Javascript

接下来js部分,先设置好Echarts选项内容,请看以下代码及注释。

然后我们使用jQuery的Ajax()来异步请求数据。

很显然,我们看到通过jQuery的$.ajax()向mapdata.php发送了一个post请求,要求返回json格式的数据,当请求成功并得到回应时,重新渲染地图数据。

PHP

mapdata.php的任务是读取mysql数据表中的数据,然后返回给前端。首先是要连接数据库,这部分代码在connect.php中,请下载源码查看。然后就是sql查询,读取表echarts_map中的数据,最后以json格式返回。

输出json格式数据

MySQL

最后提供mysql数据表结构信息,数据信息可以下载源码后,将sql导入你的mysql中即可,注意演示时修改connect.php的数据库配置信息。

CREATE TABLE IF NOT EXISTS `echarts_map` (

`id` int(10) NOT NULL AUTO_INCREMENT,

`province` varchar(30) NOT NULL,

`gdp` decimal(10,2) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

养宠指南还为您提供以下相关内容希望对您有帮助:

微信小程序使用echarts图表异步加载数据(调接口显示返回数据)

如:在 page目录的cc页面中使用echarts的话,需要在cc.json中添加以下配置。

在vue中如何使用echarts

一、 实现异步加载数据(一)引入vue-resource通过npm下载axios//命令行中输入npm install axios --save在main.js中引入axios并注册// main.jsimport http from './http'Vue.prototype.$http = http //挂载到原型上(二)...

用java、jQuery、mysql怎么实现echarts地图异步加载数据。

查看回滚段名称及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat ...

echarts怎么自动按间隔显示数据?

1、打开echarts官方实例页面,点击第一个折线图。2、进入页面后,可以看到数据比较少,所以横坐标文字全部都显示出来了。3、修改左侧的option内容,在xAxis的data数组中再添加两行内容,同时,在series中添加对应数量的值。4...

echarts中实现动态加载series下data数据

var jsonstr = [];for(var j=0;j&lt;Lista.length;j++){ var json = {};json.name = Lista[j].devicetype;json.value = Lista[j].count;jsonstr.push(json);} me.dataArr=jsonstr;//这个就可以直接使用了,...

Echarts-多个数据渲染

3、 在data里定义roseChart: "roseChart", 4、在methods:{}获取ID并获取接口数据及调用 //曲线分析图 drawRose () { var roseCharts = document.getElementsByClassName("roseChart"); // 对应地使用ByClassName for (var i...

怎样操作echarts节点显示动态数据

刚接触echarts不久,在使用过程中遇到了2个难点, 1、每个节点显示动态数据,这个其实可以通过配置项完成,在series数据绑定中,可以使用原本的配置项itemStyle中的标签格式化完成,如下:代码如下,如果需要修改文字显示的样式,则...

小程序echarts

一、引入ec-canvas文件 https://github.com/ecomfe/echarts-for-weixin “ec-canvas”二、配置json { "usingComponents":{ "ec-canvas":"../../ec-canvas/ec-canvas"} } 三、书写结构 &lt;view class="container log...

echart ,用php获取mysql的数据后,在ajax里面,怎么把数据转成echart的da...

你看 echart 需要什么样式的参数, 你就把回调数据重新构造成那种数据扔进dataset 然后重新渲染一下图形就出来了

echarts.js 一个页面如何加载多个表 我想加载两个饼图 为什么只出来一...

分开初始化,.init(div);function showLine() { var echartBar = echarts.init(document.getElementById("stackbar"));var option1 = { title:{ text:'test',subtext:'折线图测试',x:'center',y:'top',textAlign...

上一篇:koa2实现拦截器进行登录前session的校验

下一篇:Vue+Electron实现简单桌面应用

Top