博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
D3——绘制SVG图形-直方图
阅读量:4980 次
发布时间:2019-06-12

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

1、创建SVG元素

var svg = d3.select("body").append("svg");

2、为SVG元素设置属性

svg.attr("width", 500)     .attr("height", 50);

或:

//Width and heightvar w = 500;var h = 50;var svg = d3.select("body")            .append("svg")            .attr("width", w)   // <-- Here            .attr("height", h); // <-- and here!

或:

.attr({       width: w,       height: h});

 

画圆实践

//Width and heightvar w = 500;var h = 50;            //Datavar dataset = [ 5, 10, 15, 20, 25 ];            //Create SVG elementvar svg = d3.select("body")    .append("svg")    .attr("width", w)    .attr("height", h);var circles = svg.selectAll("circle")    .data(dataset)    .enter()    .append("circle");circles.attr("cx", function(d, i) {           return (i * 50) + 25;        })    .attr("cy", h/2)    .attr("r", function(d) {        return d;         })    .attr("fill", "yellow")    .attr("stroke", "orange")    .attr("stroke-width", function(d) {        return d/2;    });

Bar Chart

根据div画chart

var dataset = [ 5, 10, 13, 19, 21, 25, 22, 18, 15, 13,                11, 12, 15, 20, 18, 17, 16, 18, 23, 25 ];d3.select("body").selectAll("div")    .data(dataset)    .enter()    .append("div")    .attr("class", "bar")    .style("height", function(d) {        var barHeight = d * 5;        return barHeight + "px";    });

根据Rect画Chart

//Width and heightvar w = 500;var h = 100;var barPadding = 1;  // <-- New!var dataset = [ 5, 10, 13, 19, 21, 25, 22, 18, 15, 13,11, 12, 15, 20, 18, 17, 16, 18, 23, 25 ];//Create SVG elementvar svg = d3.select("body")    .append("svg")    .attr("width", w)    .attr("height", h);            svg.selectAll("rect")    .data(dataset)    .enter()    .append("rect")        .attr("x", function(d, i) {               return i * (w / dataset.length);          })        .attr("y", function(d) {             return h - (d*4);  //Height minus data value         })        .attr("width", w / dataset.length - barPadding)        .attr("height", function(d) {            return d*4;         })         .attr("fill", "teal");

.attr("fill", function(d) {    return "rgb(0, 0, " + (d * 10) + ")";});

添加Lable:

svg.selectAll("text")   .data(dataset)   .enter()   .append("text")   .text(function(d) {        return d;   })   .attr("x", function(d, i) {        return i * (w / dataset.length);   })   .attr("y", function(d) {        return h - (d * 4);   });

改变Label显示位置

.attr("x", function(d, i) {        return i * (w / dataset.length) + 5;  // +5}).attr("y", function(d) {        return h - (d * 4) + 15;              // +15});

设置属性

.attr("font-family", "sans-serif").attr("font-size", "11px").attr("fill", "white");

利用上面的方式计算label的位置,有时并不能很好的适应对应的bar,例如第一个label 5的位置,可以使用text-anchor属性居中

.attr("x", function(d, i) {        return i * (w / dataset.length) + (w / dataset.length - barPadding) / 2;      //x位置为每个bar的中间}).attr("y", function(d) {        return h - (d * 4) + 14;  //15 is now 14}).attr("text-anchor", "middle")

 

转载于:https://www.cnblogs.com/xuepei/p/7527082.html

你可能感兴趣的文章
Odoo 9 Odoo $ JQuery undifned
查看>>
PHP Java .NET语言的区别(转)
查看>>
suse 下的gcc安装
查看>>
20145212 罗天晨 网络欺诈技术防范
查看>>
如何把java项目打包成war包
查看>>
github实践操作
查看>>
ES6的新特性(21)——Proxy
查看>>
将本地文件通过CRT传输到虚拟机上
查看>>
rocketmq事务消息入门介绍
查看>>
#define 宏定义
查看>>
邀请好友注册页面光标点到输入框后,输入框会先灰一下。只有ios存在
查看>>
免费参加Tech.Ed Australia 2010
查看>>
简单打开和保存txt文件
查看>>
关于淘宝技术了解
查看>>
linux 用户与用户组
查看>>
数据结构之排序查找算法
查看>>
运用PCA进行降维的好处
查看>>
matlab
查看>>
《构建之法》阅读笔记02
查看>>
如何利用python将.doc文件转换为.docx文件
查看>>