echarts java动态数据,echarts动态刷新数据,echarts重新加载数据

echarts动态刷新数据,echarts重新加载数据

在这次的项目中图表显示的部分比较多,这边给分享下用到的图表的数据刷新

0ce7c48127c6d5a72c8c1172430f98e1.png

饼图最后的效果

先看下

前端部分

这是右边图的 echarts的html  一定要定义好大小

接下来是 js部分 先定义一个模板 官网有 自己稍加修改 (比较懒没加注释)

//绘制会员量比例图表

var memberChart = echarts.init(document.getElementById('member'));

memberChart.setOption({

tooltip: {

trigger:'item',

formatter:"{a}
{b}: {c} ({d}%)"},

legend: {

itemHeight:10,

itemWidth:10,

orient:'vertical',

x:'center',

y:'bottom',

icon:'roundRect',

formatter:function(name) {var index = 0;var clientlabels = ['新增会员','老会员'];var clientcounts = [621,32032];

clientlabels.forEach(function(value,i){if(value ==name){

index=i;

}

});return name + " " +clientcounts[index];

}

},

series: [

{

name:'男女比例',

type:'pie',

radius: ['45%', '53%'],

avoidLabelOverlap:false,

hoverAnimation:false,

data:[

{value:621, name:'新增会员'},

{value:32032, name:'老会员'},

],

itemStyle: {

normal:{

label:{

position :'outside',

formatter:'{d}%',

fontSize:10,

},

labelLine :{

length:2,

length2:2,

show:false,

}

}

}

}

],

color:['#0090FF','#F6A20C'],

title: {

subtext:'会员总人数',

text:'32653',

x:'center',

y:'center',

padding:0,

itemGap:0,

textStyle:{

fontSize:20,

},

subtextStyle:{

fontSize:10,

},

},

graphic: {

type:'text',

style:{

x:15,

y:15,

font:'bolder 1.2em "PingFang-SC-Medium", sans-serif',

text:'今日新增会员比例',

},

},

});

因为 主副标题被我拿去显示不同数据了  所有用上了

graphic

原生图形元素组件

接下来 看下 动态刷新数据的js

functionreflushMember(data) {

memberChart.setOption({

legend: {

formatter:function(name) {var index = 0;var clientlabels = ['新增会员','老会员'];var clientcounts =[data.newMemberCount, data.oldMemberCount];

clientlabels.forEach(function(value,i){if(value ==name){

index=i;

}

});return name + " " +clientcounts[index];

}

},

series: [

{

data:[

{value:data.newMemberCount, name:'新增会员'},

{value:data.oldMemberCount, name:'老会员'},

],

}],

title: {

text:data.memberCount,

}

})

}

主要就是把之前模板上的数据部分替换成 后台获取到的数据

饼图的刷新就到这里

还有个横向柱状图 其实都是差不多的 但是还是也看下吧

先看效果

290155d1b57de813890c3e2509e5bae4.png

这是4个横向柱状图  适应不同的搜索条件 就看下 月度top5的吧

position:absolute;margin-left: 18%;margin-top: 1.4%;

font: bolder 1.2em PingFang-SC-Medium sans-serif;">

//绘制月度热力商圈图表

var monthAreaChart = echarts.init(document.getElementById('monthArea'));

monthAreaChart.setOption({

dataset: {

source: [/*[58212, '小郡干串串'],

[78254, '钢管厂'],

[41032, '耐克'],

[12755, '金大福'],

[20145, '肯德基'],*/]

},/*grid: {containLabel: true},*/xAxis: {name:'(人)',

show:true,

splitLine: {

show:false}},

yAxis: {type:'category',

axisLine:{show:false}, //坐标轴

axisTick:[{ //坐标轴小标记

show:false}],

},

grid:{

height:'70%',

y2:20,

left:'15%',

},

series: [

{

textStyle:{

fontSize:10,

},

type:'bar',

encode: {//Map the "amount" column to X axis.

x: 'amount',//Map the "product" column to Y axis

y: 'product'},/*barWidth: 10,*/barGap:'70%',/*多个并排柱子设置柱子之间的间距*/barCategoryGap:'50%',/*多个并排柱子设置柱子之间的间距*/itemStyle: {

normal: {

color:new echarts.graphic.LinearGradient(0, 0, 1, 0, [{

offset:0,

color:'#438CFF'}, {

offset:1,

color:'#20C0F4'}]),

label: {

show:true, //开启显示

position: 'right', //在上方显示

textStyle: { //数值样式

color: 'black',

fontSize:10}

},

}

},

}

],

graphic: {

type:'text',

style:{

x:15,

y:15,

font:'bolder 1.2em "PingFang-SC-Medium", sans-serif',

text:'月度TOP5',

},

},

上面是 横向柱状图 模板例子

var listTop5Result =result.listTop5Result;for(var i = listTop5Result.length - 1; i >= 0; i--){

names.push(listTop5Result[i].deptName);//挨个取出类别并填入类别数组

}for(var i = listTop5Result.length - 1; i >= 0; i--){

nums.push(listTop5Result[i].num);//挨个取出人次并填入销量数组

}

myChart.hideLoading();//隐藏加载动画

myChart.setOption({ //加载数据图表

yAxis: {

data: names

},

series: [{

data: nums

}]

});

上面是 动态获取 并要刷新的数据  和饼图不同的是 柱状图传进去的要是数组

以上就是我要分享的内容了

感谢

如果有什么错误 请多多指教!

2019-11-12 19:52:21

http://www.dengb.com/Javabc/1379824.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/1379824.htmlTechArticleecharts动态刷新数据,echarts重新加载数据 在这次的项目中图表显示的部分比较多,这边给分享下用到的图表的数据刷新 饼图最后的效果 先...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中使用Echarts动态加载数据的步骤如下: 1. 首先,需要在Vue组件中定义一个方法来获取动态数据。可以使用异步请求或者其他方式获取数据。在这个方法中,将获取到的数据处理成Echarts所需的格式,并将其赋值给一个变量,比如`eacartsData`。\[3\] 2. 在Vue组件的模板中,使用一个`div`元素来包裹Echarts图表,并给该`div`元素一个唯一的id,比如`echartsOne`。\[2\] 3. 在Vue组件的`mounted`生命周期钩子函数中,调用一个绘制Echarts图表的方法,比如`getEcharts()`。在这个方法中,使用`document.getElementById`方法获取到包裹Echarts图表的`div`元素,然后使用`echarts.init`方法初始化一个Echarts实例,并将其赋值给一个变量,比如`myChart`。接着,定义一个`option`对象,配置Echarts图表的样式和数据。在`series`属性中,将之前处理好的动态数据`eacartsData`赋值给`data`属性。最后,使用`myChart.setOption`方法将配置好的`option`应用到Echarts实例中。\[1\] 4. 最后,在获取到动态数据后,调用获取数据的方法,比如`getData()`。在这个方法中,通过异步请求或其他方式获取到数据,并将其处理成Echarts所需的格式。然后,将处理好的数据赋值给`eacartsData`变量,并调用`this.getEcharts()`方法重新绘制Echarts图表。\[3\] 这样,就可以实现在Vue中动态加载数据并绘制Echarts图表了。 #### 引用[.reference_title] - *1* *2* *3* [vue引入echarts图表动态获取数据](https://blog.csdn.net/cuiyiran_/article/details/125456085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值