博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
d3.js——饼状图
阅读量:6227 次
发布时间:2019-06-21

本文共 2936 字,大约阅读时间需要 9 分钟。

hot3.png

        因为我的需求是需要有图例,所以pie图的创建用的是封装好的pie图制作工具生成的,图例是自己添加的,以后我会写一篇用代码写出pie图的文章,敬请期待。

1、效果

213146_r7Cx_1416844.jpg

2、html页面

 

 

3、js

 //d3.js必须引用的
  //官网上封装好的pie图的js

 

 

// 调用方法传递图数据grid.load(obj, function (result) {    if (result.total > 0) {        //grid.setData(mini.decode(result.data));        //grid.setTotalCount(result.total);        pieEquips(result.result.pieData, dimension);        pieValue(result.result.pieData, dimension);    } else {        mini.alert("没有查询到相关数据,请重新筛选!");    }}, function (e) {    mini.alert("出现错误,请重新查询!");});

 

 

//台数pie图的创建function pieEquips(data, chartName) {    $('#pieEquips').html('');    // 处理json数据    var pieData = [];    for (var i = 0; i < data.length; i++) {        pieData.push({            label: data[i].CodeName,            value: data[i].Number        });    }    // pie图配置,这个事官网上封装好的pie图制作工具生成的配置文件,有些地方需要修改    var pie = new d3pie("pieEquips", {        header: {            title: {                text: "按" + chartName + ":台数"            }        },        size: {            "canvasHeight": 400,            "canvasWidth": 500        },        data: {            content: pieData        },        labels: {            outer: {                "format": "none",            }        },        misc: {            canvasPadding: {                //top: 0,                right: 100,                //bottom: 0,                //left: 0            }        },        tooltips: {            enabled: true,            type: "placeholder",            string: "{label}: {value}台-{percentage}%",            styles: {                fadeInSpeed: 500,                backgroundColor: "#00cc99",                backgroundOpacity: 0.8,                color: "#ffffcc",                borderRadius: 4,                font: "verdana",                fontSize: 20,                padding: 20            }        }    });    // 下面的代码就是我在生成的pie图之上,获取svg整个图对象,然后添加图例和名称,其实只要    //学好d3.js的api方法,什么样的图都能画出来,当然这很难。    var temp = 30; //高度增量    var svg = d3.select("#pieEquips svg"); //获取饼图对象    // 添加legend    svg.append("g").selectAll(".legendRect")        .data(pie.options.colors).enter().append("rect")        .attr("class", "legendRect")        .attr("x", function() { return pie.options.size.canvasWidth - 100; })        .attr("y", function() { temp = temp + 20;return temp; })        .attr("width", 10)        .attr("height", 10)        .style("fill", function(d) { return d; });    // 添加legend名称    temp = 38;    svg.append("g").selectAll(".legendText")        .data(pie.options.data.content)        .enter().append("text")        .attr("class", "legendText")        .attr("x", function(d) { return pie.options.size.canvasWidth - 60; })        .attr("y", function(d) { temp = temp + 20;return temp; })        .attr("dx", ".35em")        .attr("dy", 0)        .attr("text-anchor", "middle")//默认左对齐,middle中对齐,end右对齐        .text(function(d) { return d.label; });}

 

 

 

 

 

转载于:https://my.oschina.net/u/1416844/blog/368924

你可能感兴趣的文章
LCLFramework框架之数据门户
查看>>
python基础-----集合(在我的世界你是唯一)
查看>>
【转】Closeable, Readable, Flushable, Appendable
查看>>
css
查看>>
Java 语言中 Enum 类型的使用介绍
查看>>
Git and Subversion
查看>>
用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话
查看>>
opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整...
查看>>
名校推荐20本英文经典书(留着)
查看>>
反射机制(Java)
查看>>
【leetcode】Permutations
查看>>
全世界最详细的一步一步搭建RAC步骤(二)---配置ASM+裸设备【weber出品】
查看>>
LeetCode算法题-Longest Uncommon Subsequence I(Java实现)
查看>>
译文:《Grouped》各章小结
查看>>
数据库设计心得
查看>>
【洛谷 P4342】[IOI1998]Polygon(DP)
查看>>
流程管理软件(BPM)功能简介
查看>>
0408 汉堡包
查看>>
记一次服务器被勒索!
查看>>
docker jenkins安装(一)
查看>>