没有合适的资源?快使用搜索试试~ 我知道了~
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
0 下载量 139 浏览量
2020-11-27
04:52:39
上传
评论
收藏 71KB PDF 举报
温馨提示
试读
4页
现在用D3.js + react做一个带坐标轴和比例尺的柱形图。我已经尽力把代码全部注释上了,最后我也会把完整柱形图代码奉上。如果还有疑惑的,可以去翻看一下我之前介绍的方法,以下方法都有介绍到。 还有数据都是自己定义的假数据,大家参考一下制作方法即可。 首先定义柱形图的数据、绘图区域的宽高、和上下左右的边距: var width = 600; //SVG绘制区域的宽度 var height = 500; //SVG绘制区域的高度 //定义数据 var dataList = [50,43,120,87,99,167,142] //定义上下左右的边距
资源推荐
资源详情
资源评论
D3.js(v3)+react 实现带坐标与比例尺的柱形图实现带坐标与比例尺的柱形图 (V3版本版本)
现在用D3.js + react做一个带坐标轴和比例尺的柱形图。我已经尽力把代码全部注释上了,最后我也会把完整柱形图代码奉
上。如果还有疑惑的,可以去翻看一下我之前介绍的方法,以下方法都有介绍到。
还有数据都是自己定义的假数据,大家参考一下制作方法即可。
首先定义柱形图的数据、绘图区域的宽高、和上下左右的边距:
var width = 600; //SVG绘制区域的宽度
var height = 500; //SVG绘制区域的高度
//定义数据
var dataList = [50,43,120,87,99,167,142] //定义上下左右的边距
var padding = {top:20,right:20,bottom:100,left:100}
然后设定SVG:
var svg = d3.select("#body") //选择id为body的div
.append("svg") //在<body>中添加<avg> .attr("width",width) //设定<svg>的宽度属性
.attr("height",height) //设定<svg>的高度属性
定义比例尺:
//定义比例尺
//x轴宽度
var xAxisWidth = 300;
//y轴宽度
var yAxisWidth = 300;
//x轴比例尺(序数比例尺)
var xScale = d3.scale.ordinal() //构建一个序数比例尺
.domain(d3.range(dataList.length)) //设定定义域
.rangeRoundBands([0,xAxisWidth],0.2)//代替range()设定值域,并将结果取整
//y轴比例尺(线性比例尺)
var yScale = d3.scale.linear() //创建一个线性比例尺
.domain([0,d3.max(dataList)]) //设定定义域
.range([0,yAxisWidth]) //设定值域
然后添加矩形:
//添加矩形
svg.selectAll("rect")
.data(dataList) //绑定数据
.enter() //获取enter部分
.append("rect") //添加rect元素,使其与绑定数组的长度一致
.attr("fill","fuchsia") //设置颜色
.attr("x",function(d,i){ //设置矩形的x坐标
return padding.left+xScale(i)
})
.attr("y",function(d){ //设置矩形的y坐标
return height - padding.bottom-yScale(d)
})
.attr("width",xScale.rangeBand()) //设置矩形的宽度
.attr("height",function(d){ //设置矩形的高度
return yScale(d)
})
然后为矩形添加文字标签:
//为矩形添加标签文字
svg.selectAll("text")
.data(dataList) //绑定数据
.enter() //获取enter部分
.append("text") //添加text元素,使其与绑定数组的长度一致
.attr("fill","white") //字体颜色
.attr("font-size","14px") //字体大小
.attr("text-anchor","middle") //文本相对基点的位置
.attr("x",function(d,i){ //设置文字的x坐标
return padding.left+xScale(i)
})
.attr("y",function(d){ //设置文字的y坐标
return height - padding.bottom - yScale(d)
资源评论
weixin_38569203
- 粉丝: 6
- 资源: 932
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功