D3:柱状图实现

//柱状数据
var data = [43,401,342,340,192,37,293,104];
var w = 40, //柱宽度
    len = data.length,
    height = 500,	//画布高度
    width = 600,  //画布宽度
    left = 50,
    bottom = 20;
//创建svg画布
var svg = d3.select('body')
    .append('svg')
    .attr('width',width)
    .attr('height',height)
    .style('margin-left','100px')
    .style('padding','20px')
    .style('border','1px solid green')
//绘制数据柱状
svg.selectAll('rect')
    .data(data)
    .enter()
    .append('rect')
    .attr('x',function(d,i){
        return left + w * i
    })
    .attr('y',function(d,i){
        return height - d - bottom;
    })
    .attr('width',w-5)
    .attr('height',function(d,i){
        return d
    })
    .attr('fill','steelblue')
//在柱头部标识数据
svg.selectAll('text')
    .data(data)
    .enter()
    .append('text')
    .attr('fill','white')
    .attr('text-anchor','middle')
    .attr('font-size','12px')
    .attr('x',function(d,i){
        return left +  w * i
    })
    .attr('y',function(d,i){
        return height - d - bottom;
    })
    .attr('dx',function(d,i){
        return w / 2
    })
    .attr('dy','1rem')
    .text(d => d)
//创建线性比例尺
var x = d3.scaleLinear().domain([0,len]).range([0,480]);
var y = d3.scaleLinear().domain([0,d3.max(data)]).range([600,0]);
//创建坐标轴
var axisX = d3.axisBottom().scale(x).ticks(len);
var axisY = d3.axisLeft().scale(y).ticks(len);
//绘制坐标轴
svg.append('g').attr('transform',`translate(${left},${height-bottom})`).call(axisX)
svg.append('g').attr('transform',`translate(${left},10)`).call(axisY)

  

转载于:https://www.cnblogs.com/zhang134you/p/10572160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 你手头有一些数据,想做成漂亮的表放到网站上?好主意,通过浏览器来跨平台实现数据可视化是正确的选择。什么,你还想让表能够响应用户操作?没问题,交互式表比静态片更能吸引人去探究本源。好啦,要生成通过浏览器展示的动态表,目前热门的Web数据可视化库——D3。   《灵程序设计丛书·数据可视化实战:使用D3设计交互式表》这本书很有意思,而且对读者要求不高。不需要知道什么是数据可视化,也不用有太多Web开发背景就能看懂它。不信?翻一翻就知道这是一本既好玩又实用的动手指南啦!看完这本书你会怎么样呢?   掌握必要的HTML、CSS、JavaScript和SVG基础知识;   学会基于数据在网页里生成元素和为它们设置样式的技巧;   能够生成条形、散点、饼、堆叠条形和力导向;   使用平滑的过渡动画来展示数据的变化;   赋予表动态交互能力,响应用户从不同角度探索数据的请求;   收集数据和创建自定义的地;   另外,《灵程序设计丛书·数据可视化实战:使用D3设计交互式表》100多个代码示例都可以在线浏览! 【电子版来自互联网,仅供预览及学习交流 使用,不可用于商业用途,如有版权问题,请联系删除,支持正版,喜欢的 请购买正版书籍: https://e.jd.com/30336473.html】

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值