疫情数据的地图可视化D3.js

一界面展示:

1.主页:

点击链接即可跳转对应的疫情地图可视化界面,加强可交互功能。

 2.截止2020.3.28各国新冠确诊人数—地图可视化结果如下(有几个国家数据缺少或实在无法匹配上名称,数据缺失,地图中显示的为纯黑色区域;右上角为图例):

3.截止2020.3.28各国新冠死亡人数—地图可视化结果如下:

4.截止2020.3.28各国新冠治愈人数—地图可视化结果如下:

二数据处理:

1.数据匹配

covid19 - 03-28-2020.csv表格中有些国家的名称和world_countries.json文件中的国家名称不一致,需要手动更换表格中的内容,或者在代码中进行等价转换。这里我选择的是不改变表格的内容,上网查询国家名称信息,手动调节代码,使之信息一致。

例如,在遍历covid19 - 03-28-2020.csv中使国家名称与world_countries.json中的一致:

       Confirmed.forEach(function (d) {

            if(d.Country_Region=="Korea, South")

               d.Country_Region="South Korea"

            if(d.Country_Region=="United Kingdom")

               d.Country_Region="England"

            if(d.Country_Region=="Taiwan")

                d.Country_Region="China"

            if(d.Country_Region=="Congo (Brazzaville)")

               d.Country_Region="Democratic Republic of the Congo"

            if(d.Country_Region=="Congo (Kinshasa)")

               d.Country_Region="Republic of the Congo"

            if(d.Country_Region=="Tanzania")

               d.Country_Region="United Republic of Tanzania"

            if(d.Country_Region=="Cote d'Ivoire")

               d.Country_Region="Ivory Coast"

            if(d.Country_Region=="Serbia")

               d.Country_Region="Republic of Serbia"

            confirmedById[d.Country_Region] +=Number(d.Confirmed);  

        });

以及在遍历world_countries.json中使国家名称与covid19 - 03-28-2020.csv中的一致:

若表格中没有对应国家的疫情数据,则填充地图的值为NaN,地图上的该国家的颜色绘制为纯黑色。

2.图例制作:

根据我们地图填充颜色时的设定:

 var color = d3.scaleThreshold()

.domain([0, 10, 100, 500, 1000,10000,50000])

.range(["rgb(247,251,255)","rgb(220,220,220)","rgb(190,190,190)","rgb(160,170,180)","rgb(120,130,150)", "rgb(100,100,100)","rgb(20,80,100)"]);

来设定图例:

var data_legend = [
        {"name":"0-10",
        "color":"rgb(247,251,255)"
        },{
        "name":"10-100",
        "color":"rgb(220,220,220)"
        },{
        "name":"100-500",
        "color":"rgb(190,190,190)"
        },{
        "name":"500-1000",
        "color":"rgb(160,170,180)"
        },{
        "name":"1000-10000",
        "color":"rgb(120,130,150)"
        },{
        "name":"10000-50000",
        "color":"rgb(100,100,100)"
        },{
        "name":"50000",
        "color":"(20,80,100)"
        }];
    var legend = svg.selectAll(".legend") 
        .data(data_legend)
        .enter().append("g")
        .attr("class", "legend")
        .attr("transform", function(d, i) { return "translate(-30," + (i * 20 + 130) + ")"; });  
    legend.append("rect")
        .attr("x", width - 225-100) 
        .attr("y", 138+20)
        .attr("width", 40)
        .attr("height", 3) 
        .style("fill", function(d){
         return d.color
         });
    legend.append("text")
        .attr("x", width - 230-100)
        .attr("y", 145+20)
        .style("text-anchor", "end") 
        .text(function(d) { 
        return d.name;
        });

如有完整代码需求,请私信发邮箱哈

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
制作全国疫情数据可视化地图的步骤如下: 1. 收集数据:收集全国各地的疫情数据,包括确诊病例数、死亡病例数、治愈病例数等,可以从各级政府官网或者新闻网站上获取。 2. 选择地图工具:选择合适的地图工具进行数据可视化,如ECharts、Leaflet、D3.js等。其中,ECharts是一种基于JavaScript的开源可视化工具,可以实现各种图表的绘制和交互。Leaflet是一种JavaScript库,可以帮助开发者在网页中嵌入可交互的地图D3.js是一种JavaScript库,可以帮助开发者使用HTML、SVG和CSS来创建数据可视化。 3. 绘制地图:根据选定的地图工具,进行地图的绘制,可根据需要选择中国地图或者各省份地图。 4. 导入数据:将收集到的疫情数据导入到地图工具中,以便进行可视化处理。 5. 设计可视化效果:根据数据的特点和要传达的信息,设计合适的可视化效果。例如,可以通过不同颜色的填充来表示各省份的确诊人数、死亡人数等。 6. 添加交互功能:为地图添加交互功能,让用户可以根据需要选择特定的区域进行查看。 7. 发布地图:完成地图制作后,可以将其发布到网站上,供用户查看和使用。 需要注意的是,制作可视化地图需要一定的编程和设计技能,对于初学者来说可能会有一定难度,需要不断学习和尝试。同时,还需要注意数据的准确性和可靠性,以及地图的可读性和易用性,让用户能够轻松地理解数据和信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值