D3 数据可视化 考研人数直方图

 代码:

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>历年考研人数对比</title>

</head>
<body>
<h1 style="text-align:center" font-size="50">历年考研人数对比(2005-2023)</h1>
<h2 style="text-align:right" font-seze="30">单位:百万</h2>
<svg id="mysvg" width=800 height=600></svg>
<script>
    var w = window.innerWidth
        || document.documentElement.clientWidth
        || document.body.clientWidth;

    var h = window.innerHeight
        || document.documentElement.clientHeight
        || document.body.clientHeight;

    var svg=document.getElementById("mysvg");
    svg.setAttribute("width",w);
    svg.setAttribute("height",h);
    var rec=new Array(19);
    var txt=new Array(19);
    var title=new Array(19);
    var height=new Array(117.2,127.1,128.2,120,124.6,140.6,151.1,165.6,176,172,164.9,177,201,238,290,341,377,457,474);
    var age=new Array("2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023");
    for(var i=0;i<19;i++){
        rec[i]=document.createElement("rect");
        svg.appendChild(rec[i]);
        txt[i]=document.createElement("text");
        svg.appendChild(txt[i]);
        title[i]=document.createElement("text");
        svg.appendChild(title[i]);
        var r = Math.floor(Math.random() * 255);
        var g = Math.floor(Math.random() * 255);
        var b = Math.floor(Math.random() * 255);
        rec[i].outerHTML="<rect x="+(i*w/rec.length)+" y="+(h-height[i]-500)+" width="+(w*0.9/rec.length)+" height="+(height[i]+200)+" fill='rgb(" + r + "," + g + "," + b + ")'>";
        txt[i].outerHTML="<text x="+(i*w/rec.length+w/(4*rec.length))+" y="+(h-height[i]-500)+" fill='rgb(" + 0 + "," + 0 + "," + 0 + ")'"+"font-size="+30+">"+(height[i])+"</text>";
        title[i].outerHTML="<text x="+(i*w/rec.length+w/(4*rec.length))+" y="+(h-250)+" fill='rgb(" + 1 + "," + 0 + "," + 0 + ")'"+"font-size="+30+">"+age[i]+"年"+"</text>";
    }


</script>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值