echarts 饼图进度条_echarts饼图

本文介绍了如何从后台动态获取数据并转化为ECharts饼图所需的JSON格式。通过Ajax请求,从Controller获取处理后的数据,然后填充到ECharts图表中,展示了数据处理和图表渲染的步骤。
摘要由CSDN通过智能技术生成

在echarts的官网上我们可以看到很多的官方实例,很多酷炫的模型都已经设计好了,不过这些模型的数据一般都是在实例中写死,平时在我们项目里可没有这些死数据,如何从后台获取需要的数据,并且把这些数据拼装成echarts需求的json数据,这个对于像我一样的小白可能有点麻烦,这里我把我解决的过程简要的做个总结。

首先获取数据我们可以通过ajax的方式从后台获取数据源并将返回的数据设置成json格式,至于后台的数据得先根据你的echarts图需要的格式设计。比如饼状图需求的数据格式为({  name :张三,value : 666 },{  name :李四,value : 333})

下面我会上具体的代码来说明:

1、首先是在controller上写出获取数据的方法

//这个方法一般用于前台ajax请求获取数据//一般写在controller中,你这个按照springMVC的注解给这个方法添加访问路径

public MapgetData() {int a = 0;//a代表已采集

int b = 0;//b代表等待采集

int c = 0;//c代表延迟未提供

int d = 0;//d代表数据稽核预警

int e = 0;//e代表采集异常//这里可以通过后台的方法获取数据源,然后对数据进行加工,获取echarts图形需要//的数据,即我上面设置的abcde

List collectList =resourceService.getResourceByList();//之后可以通过foreach循环处理数据或者

for(Resource li : collectList) {//具体处理这里就不写了

List name = new ArrayList<>();

List value = new ArrayList<>();//给name传值

name.add("已采集");

name.add("等待采集");

name.add("延迟未提供");

name.add("数据稽核预警");

name.add("采集异常");//给value传值,这里的abcde

value.add(a);

value.add(b);

value.add(c);

value.add(d);

value.add(e);

Map data = new HashMap();

data.put("names", name);

data.put("values", value);returndata;

}

View Code

2、在jsp页面上引入你需要相关控件,并给你的echarts图画个容器

">

ECharts是一个非常流行的开源JavaScript图表库,它提供了丰富的可视化图表类型,包括饼图(Pie Chart)和进度条(Progress Bar)。饼图用于展示整体中的部分占比,而占比进度条则可以直观地展现数据随时间或某进程的动态变化。 在ECharts中,饼图通常用于展示各部分在整个整体中的相对大小,每个扇区的面积大小代表了对应的比例。饼图可以通过`series`配置项中的`type: 'pie'`来创建。你可以设置`data`属性来定义各个扇区的数据,以及`name`属性为标签显示每个部分的名称。 占比进度条(也称为环形图或 doughnut chart)则是饼图的一种变体,它内部有部分填充,外部是透明的,这样就可以清楚地看到背景,更像一个环形进度条。在ECharts中,你可以通过`type: 'ring'`来创建这种效果。 以下是一个简单的ECharts饼图和占比进度条的配置示例: ```javascript // 饼图示例 var pie = { type: 'pie', data: [ { value: 335, name: '销售部' }, { value: 310, name: '市场部' }, { value: 234, name: '研发部' }, { value: 135, name: '客服部' } ], series: [{ name: '各部门占比', type: 'pie', radius: ['45%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '16px', fontWeight: 'bold' } } }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" } }] }; // 占比进度条示例 var ring = { type: 'ring', center: ['50%', '60%'], radius: ['55%', '70%'], data: [ { value: 335, name: '销售部' }, { value: 310, name: '市场部' }, { value: 234, name: '研发部' }, { value: 135, name: '客服部' } ], series: [{ type: 'ring', animationDurationUpdate: 1000, silent: true, color: ['#8ec07c', '#f60', '#3398db', '#f46f56'], label: { normal: { show: false }, emphasis: { show: true } }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" } }] }; // 使用ECharts实例化并渲染图表 var myChart = echarts.init(document.getElementById('main')); myChart.setOption(pie); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值