如何绘制一幅圆滚滚的世界地图?

如何绘制一幅圆滚滚的世界地图?

昨天有个小伙伴发给我一个网站:COVID-19 Visualizer 里面展示了一个球形地球。这样的:

这种图表多半都是 JavaScript 绘制的,一些 R 包通过封装 JavaScript 的代码也能快速绘制这些高级图表。封装成 R 函数之后使用变得简便了,自然功能也被部分固定化了。今天我们就使用 R 绘制一个圆滚滚的世界地图。

安装需要的包

本文使用两种方法绘制,分别使用了 globe4r 和 threejs 包,两个包都是 GitHub 上的,为了方便大家安装,我已经把他们的源码都放在了附件中,运行下面的命令即可安装(确保两个 zip 文件位于你的当前工作目录下):

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

使用 globe4r 绘制

导入需要的 R 包:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

读取世界地图的 GEOJSON 数据并转为 geo_list 数据(globe4r 包需要这种格式):

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

整理 4 月 3 号到 4 月 4 号的新增确诊人数数据,最后我生成了一些变量,他们是下面绘图需要的一些参数:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

绘制圆滚滚的世界地图:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

也可以不使用圆柱体而使用六角柱:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

也可以使用地图填充的效果,这就是之前读取地图数据的用处了:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

合并多个 HTML 控件可以使用 manipulateWidget 包:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

再关心下老美

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

使用 threejs 绘制美国新冠肺炎新增确诊病例的分布:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

知识星球附件链接:https://t.zsxq.com/6AYjMfA

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×