使用echarts绘制饼状图

前端代码:

 1 <script src="${ctx}/static/plugin/echarts/echarts-v4.2.0/echarts.common.min.js"></script>
 2  <div id="main" style="width: 600px;height:400px;"></div>
 3 <script type="text/javascript">
 4     /* 基于准备好的dom,初始化echarts实例 */
 5     var myChart = echarts.init(document.getElementById(‘main‘));
 6     /* 核心显示设置 */
 7     var option = {
 8             /* 标题设置 */
 9             title : {
10                 text: ‘配货比例统计‘,
11                 x:‘center‘
12             },
13             tooltip : {
14                 trigger: ‘item‘,
15                 formatter: "{a} <br/>{b} : {c} ({d}%)"
16             },
17             /* 颜色和选项的对应关系 */
18             legend: {
19                 orient: ‘vertical‘,
20                 left: ‘left‘,
21                 data: []            //待填充数据项1
22             },
23             /* 内容显示 */
24             series : [
25                 {
26                     name: ‘比例‘,      //鼠标移至不同扇形区提示信息的标题
27                     type: ‘pie‘,    //指定数据生成的图表类型
28                     radius : ‘55%‘,
29                     center: [‘50%‘, ‘60%‘],
30                     data:[],         //待填充数据项2
31                     /* 阴影区域设置 */
32                     itemStyle: {
33                         emphasis: {
34                             shadowBlur: 10,
35                             shadowOffsetX: 0,
36                             shadowColor: ‘rgba(0, 0, 0, 0.5)‘
37                         }
38                     }
39                 }
40             ]
41         };
42     /* 发送ajax请求 */
43     var data = {};
44     //发送key-value类型的请求数据
45         //例如:data.xxx = 1;
46     $.ajax({
47         type: "POST",
48           //当发送json数据时添加:
49            /*  contentType: "application/json; charset=utf-8", */
50         url: "${ctx}/ksCunhuo/getChart.mvc",
51         data: data,
52         error: function (data) {
53             alert("出错了!" );
54         },
55         success: function (data) {
56             //对echarts模板进行数据填充
57             option.legend.data = data.title;
58             option.series[0].data = data.number;
59               //重新加载图表显示
60             myChart.setOption(option);
61         }
62     });
63 </script>

后台代码:

1.实体类Item

 1 public class Item {
 2
 3     private List<String> title;
 4     private List<HashMap<String, Object>> number;
 5
 6     public List<String> getTitle() {
 7         return title;
 8     }
 9     public void setTitle(List<String> title) {
10         this.title = title;
11     }
12     public List<HashMap<String, Object>> getNumber() {
13         return number;
14     }
15     public void setNumber(List<HashMap<String, Object>> number) {
16         this.number = number;
17     }
18
19 }

2.controller层代码:

 1 @RequestMapping("getChart")
 2     @ResponseBody
 3     public Item  getChart(){
 4         Map<String, Object> keyMap = new HashMap<String, Object>();
 5         //构建返回的数据项
 6         List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
 7         List<String> names = new ArrayList<String>();
 8         names.add("已配货比例");
 9         names.add("未配货比列");
10         //模拟数据
11         try {
12             List list1 = ksCunhuoService.findByQuery1();
13             List list2 = ksCunhuoService.findAll1();
14             double len1 = list1.size();
15             double len2 = list2.size();
16             double d1 = len1/len2;
17             double d2 = (len2-len1)/len2;
18             int data1 =  (int) (d1*100);
19             int data2 =  (int) (d2*100);
20             for (String name : names) {
21                 HashMap<String, Object> vals = new HashMap<String, Object>();
22                     vals.put("name", name);
23                     if("已配货比例".equals(name)) {
24                         vals.put("value", data2);
25                     } else {
26                          vals.put("value", data1);
27                     }
28                     list.add(vals);
29                 }
30         } catch (Exception e) {
31             // TODO Auto-generated catch block
32             e.printStackTrace();
33         }
34        //封装成pojo对象
35        Item item = new Item ();
36        item.setNumber(list);
37        item.setTitle(names);
38        return item;
39
40     }

原文地址:https://www.cnblogs.com/zeevy/p/12355546.html

时间: 2024-08-03 02:57:22

使用echarts绘制饼状图的相关文章

[Echarts]用Echarts绘制饼状图

在项目网站的网页中,有这样一幅图: 心血来潮,想使用百度Echarts来绘制一下,可是没能绘制得完全一样,Echarts饼状图的label不能在图形下面放成一行,最后的效果是这样子的: 鼠标移动到items上,可动态显示百分比: 另外,还了解到了一种特殊的饼状图:南丁格尔图,就是用扇形半径的大小来表示百分比,对于相差比较大的items,看起来会有些不平衡: 最后,上代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta ch

canvas绘制饼状图

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>06绘制饼状图</title> </head> <body> <canvas id="canvas"> 抱歉,您的浏览器不支持Canvas.请升级您的浏览器! </canvas> <s

第166天:canvas绘制饼状图动画

canvas绘制饼状图动画 1.HTML 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 6

绘制饼状图

1 import matplotlib.pyplot as plt 2 import numpy as np 3 #准备女生的人数及比例 4 man = 71351 5 women = 68187 6 man_perc = man/(women+man) 7 women_perc = women/(women+man) 8 #添加名称 9 labels = ['男','女'] 10 #添加颜色 11 colors = ['blue','red'] 12 #绘制饼状图 pie 13 paches,

canvas动态绘制饼状图,

当我们使用Echrts很Highcharts的时候,总是觉得各种统计图表是多么神奇,今天我就用现代浏览器支持的canvas来绘制饼状统计图,当然仅仅是画出图并没什么难度,但是统计图一般都有输入,根据不同的输入来绘制,需要发挥你脑力. 1.canvas简单使用 1.1先看我们的html,需要一个绘图的区域 <canvas id="drawing" width="500px" height="500px"></canvas>

skyline应用-BS绘制饼状图

这个有现成的代码,把代码做一个简要的说明,具体实现效果,是在TE的地图画一个饼状图. <script type="text/javascript"> function createpie() { //设置简单参数,包括半径等参数 var sum = 0; var radius = 100; var angle = 0; var i; //根据饼状图的分块,设置不同的颜色 var color = [0x0000a0, 0x00ff60, 0x8000a0, 0xa0ff00,

svg动态绘制饼状图

1.<path>绘制圆弧曲线 语法:d="A rx ry x-axis-rotation large-arc-flag sweep-flag x y" A  命令绘制椭圆弧. 参数含义: rx,ry:椭圆的长半轴.短半轴: x-axis-rotation:该段弧 所在椭圆的x轴与水平方向的夹角: large-arc-flag:值可为0或1,0为小弧度角,1为大弧度角: sweep-flag:绘制方向,0为逆时针,1为顺时针: x,y椭圆弧终点坐标. 2.js动态svg va

d3.js绘制饼状图

<!DOCTYPE html> <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px"> <head> <title></title> <meta charset="utf-8"> <meta name="viewport

绘制饼状图效果

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #canvas{ background: #988E75; margin: 0 auto; display: block; position: relative; } </style> </head> <body>