使用D3.js绘制竖直柱状图表

一、先看效果图:

二、代码详情:此代码可以直接在本地运行

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>竖直柱状图表</title>
    </head>
    <body>
        <div id="container"></div>
        <script type="text/javascript" src="http://d3js.org/d3.v3.js" charset="utf-8"></script>
        <script type="text/javascript">
         
   // 定义柱形图数据
            var data = [1,5,7,9,10,14,15,10,3,8]
            
// 定义每个柱形图之间的间隙和高度
            var barWidth = 50
            var barPadding = 10
            var svgHeight = 500
          
 //计算svg的宽度
            var svgWidth = (barWidth+barPadding)*data.length
            
        
    // 定义线性缩放
            var scale = d3.scale.linear()
                    .domain([0,d3.max(data)])
                    .range([svgHeight,0])
            var svg = d3.select('#container')
// 容器元素选择
                .append('svg')   //并向其内添加一个svg元素
                .attr('width',svgWidth) //设置宽高
                .attr('height',svgHeight)
                
            var bar = svg.selectAll('g')
//选择所有g元素
                    .data(data) //使用.data()进行图形数据绑定
                    .enter()  //追加插入g DOM元素
                    .append('g')
                    .attr('transform',function(d,i){ return 'translate('+i*(barWidth+barPadding)+',0)'})
                
          
 // 定义矩形
                bar.append('rect')
                    .attr({
                        'y': function(d){ return scale(d)},
                        'width': barWidth,
                        'height':function(d){ return svgHeight-scale(d)}
                    })
                    .style('fill','#4682B4')
                    
                bar.append('text')
                    .text(function(d){ return d})
                    .attr({
                        'y':function(d){ return scale(d)},
                        'x':barWidth/2,
                        'text-anchor': 'end'  
//设置文字对齐属性
                    })
        </script>

    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值