D3——绘制SVG图形-直方图
1、创建SVG元素
var svg = d3.select("body").append("svg");
2、为SVG元素设置属性
svg.attr("width", )
.attr("height", );
或:
//Width and height
var w = ;
var h = ;
var svg = d3.select("body")
.append("svg")
.attr("width", w) // <-- Here
.attr("height", h); // <-- and here!
或:
.attr({
width: w,
height: h
});
画圆实践
//Width and height
var w = ;
var h = ; //Data
var dataset = [ , , , , ]; //Create SVG element
var 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 * ) + ;
})
.attr("cy", h/)
.attr("r", function(d) {
return d;
})
.attr("fill", "yellow")
.attr("stroke", "orange")
.attr("stroke-width", function(d) {
return d/;
});

Bar Chart
根据div画chart
var dataset = [ , , , , , , , , , ,
, , , , , , , , , ]; d3.select("body").selectAll("div")
.data(dataset)
.enter()
.append("div")
.attr("class", "bar")
.style("height", function(d) {
var barHeight = d * ;
return barHeight + "px";
});

根据Rect画Chart
//Width and height
var w = ;
var h = ;
var barPadding = ; // <-- New! var dataset = [ , , , , , , , , , ,, , , , , , , , , ]; //Create SVG element
var 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*); //Height minus data value
})
.attr("width", w / dataset.length - barPadding)
.attr("height", function(d) {
return d*;
})
.attr("fill", "teal");

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

添加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 * );
});

改变Label显示位置
.attr("x", function(d, i) {
return i * (w / dataset.length) + ; // +5
})
.attr("y", function(d) {
return h - (d * ) + ; // +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) / ; //x位置为每个bar的中间
})
.attr("y", function(d) {
return h - (d * ) + ; //15 is now 14
})
.attr("text-anchor", "middle")

D3——绘制SVG图形-直方图的更多相关文章
- 10 个超炫绘制图表图形的 Javascript 插件【转载+整理】
原文地址 现在,有很多在线绘制图表和图形(Charts and Graphs)的 JavaScript 插件,这些插件还都是免费,以及图表库.这些插件大量出现的原因是基于一个事实:人们不再依赖于 Fl ...
- 绘制SVG内容到Canvas的HTML5应用
SVG与Canvas是HTML5上绘制图形应用的两种完全不同模式的技术,两种绘制图形方式各有优缺点,但两者并非水火不容,尤其是SVG内容可直接绘制在Canvas上的功能,使得两者可以完美的融合在一起, ...
- 使用D3绘制图表(7)--饼状图
这次是绘制饼状图,也是这一次使用D3绘制图表的最后一篇,大家可以从其他地方深入学习D3绘制图表,也可以直接查看D3的API进行学习,本次绘制饼状图的数据跟之前的卸载数组里面的不一样,这一次是使用d3的 ...
- 使用D3绘制图表(4)--面积图表
面积图表的绘制就是在曲线图表的基础上做一点小小的改动.其他的代码跟绘制曲线图表没有什么区别,下面有黄色背景颜色的代码就是修改的,是不是很简单,第一句修改的地方就是把之前绘制线的函数(line)改成了绘 ...
- 使用D3绘制图表(3)--添加坐标轴和文本标签
上一篇是曲线的绘制,这样仅仅只是有一条线,完全先是不出数据想要表现的内容,于是我们要添加坐标系,添加坐标系和画线类似. 1.还是没有变化的html页面 <!DOCTYPE html> &l ...
- 使用D3绘制图表(2)--绘制曲线
上一篇是使用D3绘制画布,这一篇的内容是在画布上绘制曲线. 1.之前的html代码没有变化,但是我还是贴出来 <!DOCTYPE html> <html> <head&g ...
- Python 使用 matplotlib绘制3D图形
3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线( ...
- SVG图形的简单修改
svg格式的图片是一种矢量图片,最近我就喜欢使用这种图片在做html的元素.网上也有很多现成的svg图片,比如:http://www.sfont.cn这个网站,就能很快的找到各种您想要的图片.但是下载 ...
- react使用引入svg的icon;svg图形制作
由于手头的icon有限,需要使用更多的图标,就得找外援: 1.react安装icon插件,使用插件里已经有的图标 https://react-icons.netlify.com/#/ React Ic ...
随机推荐
- eclipspe导入hibernate的源代码
看图:
- 九度oj 1003 A+B 2010年浙江大学计算机及软件工程研究生机试真题
题目1003:A+B 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:12812 解决:5345 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号",&qu ...
- [转]js和jquery获取窗体高度
JQuery获取浏览器窗口宽高,文档宽高 2010-01-20 08:59<script type="text/javascript">$(document).read ...
- Python基础(9) - 类
Python 看下面一个简单类: >>> class MyClass(object): ... """ ... this is a class with ...
- Golang教程:Map
什么是 map? Map 是 Go 中的内置类型,它将键与值绑定到一起.可以通过键获取相应的值. 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map.语法为:mak ...
- js 验证字符串是否全为中文
js 验证字符串是否全为中文: function isChinese(str) { var reg = /^[\u4E00-\u9FA5]+$/; if(reg.test(str)){ return ...
- 自己实现async和await
无意当中看了一些博文,说有人想自己尝试实现基于异步操作的方法: 1)直接使用Task(不说咯,这个是微软给我们的标准实现方法). 2)必须继承INotifyCompletion接口,同时自己实现IsC ...
- [javaSE] JDBC的批处理
向数据库发送多条sql语句 create database batch use batch create table batch_table( id int primary key auto_incr ...
- JavaScript数组循环遍历之forEach
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- Python基础学习总结(六)
8.函数 函数是带名字的代码块,用于完成具体的工作.def函数定义,指出函数名.定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参 ...