通过div来实现条形图

本文介绍了一种利用D3库通过div元素而非传统的svg rect来实现条形图的方法。主要步骤包括添加div元素,应用样式类,或者直接使用style()设置CSS样式。通过classed()方法管理和更新类,同时强调style()设置的样式具有更高的优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在d3中,我们一通过svg中rect来绘制条形图,其实也可以通过div简单的色块填充来实现。

  • 总体思路:
  • 添加div元素
  • 添加类(类中设置好css样式)
  • 或者style()直接设置css样式
<style type="text/css">
    div.bar {
        width: 75px;
        height: 100px;
        display: inline-block;
        background-color: blue;

    }

</style>
<body>

</body>
<script type="text/javascript">
    var dataset=[1,2,3,4,5]
    w=500;
    h=300;

    d3.select("body")
        .selectAll("div")
        .data(dataset)
        .enter()
        .append("div")
        .attr("class","bar")
        // .classed("bar",false)
        .style("width",100+"px")
        .style("height",function(d,i){
            return d*10+"px";
        })
        .style("margin-right",function(d,i){
            return 2+"px";
        })
        .style("display","inline-block")
        .style("background-color","pink")

</script>
  • 解释:
  • classed()方法是d3中添加类和删除类的快捷方法,这里只是检验方法而已,
  • 可以在chrome下f12,看到style能直接设置css样式,并且覆盖类中设置的,优先级更高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值