当前位置: 首页 > news >正文

ajax获取json数据并显示_ajax请求echarts圆饼图动态显示数据方法

在最近项目中有个需求是统计出所有文件占比并用圆饼图展示。后台提供接口返回数据是这样的:

v2-08d5c6b7457351791465087bcc2a1fb8_b.jpg

返回的简单粗暴,key和value直接这样返回,前端接收。

在绘制饼状图时需要把这些数据动态加载出来。首先cdn引入echarts。

<script type="text/javascript" src="https://cdn.bootcss.com/echarts/4.0.4/echarts.min.js"></script>

//饼状图数据

var myChart = echarts.init(document.getElementById('ring'));

$.ajax({

url:'spaceComFile',

type:'post',

dataType:'json',

success:function(data){

console.log(data);

var option = {

tooltip : {

trigger : 'item',

// formatter : "{a} <br/>{b} : {c} ({d}%)"//默认是这种方式显示,也可以自定义

formatter: function(params) {

var res =params.seriesName+'<br/>'+params.name+':';

var num=parseInt(params.value / 1024);

var val=Number(num/1024).toFixed(2);

res+=val+'M'+'&nbsp'+params.percent+'%';

return res;

}

},

legend: {

orient: 'vertical',

left: '0', //图例距离左

y: 'center', //图例上下居中

formatter: function (params) {

/* for (var i = 0; i < option.series[0].data.length; i++) {

if (option.series[0].data[i].name == params) {

return params +":"+ option.series[0].data[i].value+"M";

}

}*/这种方法适用于有属性命名的数据

for(var key in data.result){

var num=parseInt(data.result[key]/ 1024);

var val=Number(num/1024).toFixed(2);

if (key== params) {

return params +":"+val+"M";

}

}

},

data:(function(){

var res=[];

for(var key in data.result){

res.push({

name:key

})

}

return res;

})(),

},

series : [

{

name : '文件管理',

type : 'pie',

data:(function(){

var res=[];

for(var key in data.result){

res.push({

name:key,

value:data.result[key]

})

}

return res;

})(),

itemStyle : {

emphasis : {

shadowBlur : 10,

shadowOffsetX : 0,

shadowColor : 'rgba(0, 0, 0, 0.5)'

}

},

center : [ '50%', '50%' ],

}

]

};

myChart.setOption(option);

}

});

最终效果如下:

v2-3e3224c9e68a3fdde069ee6a2ccccab2_b.jpg

相关文章:

  • ajax req.getsession() 获取不到_ajax上传文件后台接收文件对比
  • python中ls是什么_python实现windows下的ls函数
  • python程序怎么写_注册程序怎么写??【python】
  • bpmn流程图_流程图软件哪个好用?
  • 信息系统项目管理师_信息系统项目管理师论文格式
  • python average函数详解_Python内置函数详解——总结篇
  • python3标准库有哪些_Python3-标准库
  • mfc从入门到精通pdf_Visual C++从入门到精通视频教程(含源码)
  • linux 卸载python_Python Tips | 卸载Mac 上pkg安装的Python
  • nmon监控工具使用方法_「测试」 - 性能测试 amp; 性能监控工具nmon
  • 用python画波浪线的句子_matplotlib中的锯齿线或波浪线
  • 使用静态成员变量来计算内存中的实例化的对象数目_吊打面试官-java内存模型...
  • docker容器启动时自动启动脚本_如何在启动Jupyter Notebook时自动执行一段代码?...
  • 函数 tostring_toString() 、String() 、JSON.stringify()
  • linux 网卡配置_Linux下双网卡双IP配置
  • [Vue CLI 3] 配置解析之 css.extract
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【个人向】《HTTP图解》阅后小结
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iOS | NSProxy
  • Javascript弹出层-初探
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Leetcode 27 Remove Element
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • PHP 的 SAPI 是个什么东西
  • Protobuf3语言指南
  • swift基础之_对象 实例方法 对象方法。
  • Vue2.x学习三:事件处理生命周期钩子
  • 当SetTimeout遇到了字符串
  • 官方解决所有 npm 全局安装权限问题
  • 基于遗传算法的优化问题求解
  • 排序算法学习笔记
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 中文输入法与React文本输入框的问题与解决方案
  • 追踪解析 FutureTask 源码
  • Java数据解析之JSON
  • 如何在招聘中考核.NET架构师
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​学习一下,什么是预包装食品?​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #{}和${}的区别是什么 -- java面试
  • #Ubuntu(修改root信息)
  • #每天一道面试题# 什么是MySQL的回表查询
  • #微信小程序:微信小程序常见的配置传值
  • (1) caustics\
  • (3)nginx 配置(nginx.conf)
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)我也是一只IT小小鸟
  • (转载)Linux网络编程入门
  • ./configure,make,make install的作用