如何在r中创建一个特定于您所在国家/地区的简单coronavirus仪表板

Antoine Soetewey 2020-03-23 10 minute read

新冠病毒仪表板:比利时的案例

介绍

新的Covid-19冠状病毒是现在最热门的话题。每天,媒体和报纸分享了几个国家的新案例和死亡人数,试图衡量病毒对公民的影响,并提醒我们留在家里以保持安全。冠状病毒是每个人的嘴唇。

除了各国政府,媒体和公司讨论的外,数据科学家和数据专业人员通常都在将他们的知识和时间置于病毒的服务。这导致应用程序,仪表板,博客帖子,视频,数据集和代码的扩散,以某种方式分析Covid-19的扩展以及它如何在人口中传播。

新冠病毒上的顶级资源

作为数据爱好者,我发现了关于冠状病毒的众多资源。然而,这些资源遍布互联网各地,往往被另一种类型的信息群众隐藏(例如,令人担忧的标题,受感染的名人的名称,展示他们如何帮助医疗保健机构等)。为了解决这个问题,我收集然后在上一篇文章中共享 新冠病毒上最好的R资源 I came across.

请注意,在本文中仅在本文中共享资源,因为R是我最喜欢的统计计划,也是我最熟悉的。我几乎每天使用这个程序的事实使我更容易实现资源背后的复杂性和时间,并欣赏其质量及其潜力。我相信在线还有其他非常有趣的资源(例如,可能是可能的 最受欢迎的仪表板 由约翰霍普金斯冠状病毒资源中心)。1 尽管如此,很多人处于比我不称职的编程语言所做的资源质量更好的位置。

文章 让我发现了关于Coronavirus的许多巨大资源,我继续接受来自世界各地科学家的数据可视化和数据分析,以便我在集合中包含它们。谢谢,它不断提高收集的质量和完整性。

除了接收R资源外,读者通常会问的问题是“我如何自己创建仪表板?”或者“我如何建立特定于我国的仪表板?”因此,如果我创建了对我国(比利时)的仪表板,以及详细说明如何建立它的步骤,我会为某些人提供服务。

有关如何开发此类仪表板的问题主要来自R初学者,因为高级R用户最可能知道如何做一个,或者至少可以轻松地使用我收集的资源 这里 作为自己工作的灵感来源。此外,为了回应冠状病毒的热潮,感兴趣的用户急于匆忙,并希望在尽快运行自己的仪表板。

这些问题导致我创建一个简单的想法(但功能强大,视觉上有吸引力) 仪表板,而不是一个 闪亮的应用程序。闪亮的应用程序具有以下优势,即通过简单地以用户友好的方式更改某些输入,用户可以编辑输出和可视化的意义上的优势,而仪表板是静态的,则最终用户无法修改。另一方面,仪表板在闪亮的应用程序上的优势在于,代码更容易,特别是如果您已经精通了 r markdown..

新冠病毒仪表板:比利时的案例

在我到目前为止所见的所有可视化中,一个人通过其简单性和同时站出,通过其完整性和可视化的质量。因此,我决定基于此现有的coronavirus仪表板 仪表板 通过rami krispin(具有允许自由调整和共享的许可证的许可证)并调整它,以便它是特定于比利时的。请注意,我还从初始仪表板上删除了一些可视化和表,以保持其真正简单且直接到该点。

在阅读之前,这是我的 新冠病毒仪表板 适用于以下主要部分的比利时和预览:

仪表板被分段为可以在顶部选择的几个部分:

  • “摘要”部分提供了关于冠状病毒(总案例,主动案例和死亡)的关键措施,以及从1月22日到最新的可用日期到最新日期的累积案例和死亡累计患者和死亡的情节。
  • 比较部分呈现了日常新案例(左侧面板)的数量和与其他欧洲国家的类型(右侧面板)的分发的比较(您也可以通过在代码中替换它们来更改这些国家)。
  • 地图部分显示了确认案例和死亡的世界地图。您可以取消选中一个或多种类型的案例(右上角)并放大或缩小(左上角)以使地图适应您的需求。
  • 关于部分提供有关数据的更多信息,仪表板通常是多久更新的频率。

I believe this simple dashboard is easy enough to be adapted to any country (and by anyone from beginner to expert), and still communicate key measures about the virus throughout some visualizations. A little extra which is worth mentioning is the fact that all plots are generated with the {plotly} package. This package allows to enhance plots by displaying additional relevant information when hovering over them (try by yourself!).

如何创建自己的coronavirus仪表板

如果要构建特定于国家/地区的仪表板,请按照下列步骤操作:

  1. 打开仪表板 这里
  2. 通过位于仪表板右上角的按钮“源代码”来查看整个代码,或者看到代码 GitHub. 。复制该代码。
  3. Open a new R Markdown file (.Rmd), type any title and author (they will be replaced in the next step anyway), select HTML as the output format and click on OK:

  1. 删除已存在的所有模板代码并粘贴在步骤1中复制的代码。
  2. 确保已安装所需的软件包:
install.packages(c("devtools", "flexdashboard", "leaflet", "leafpop"))
devtools::install_github("RamiKrispin/coronavirus", force = TRUE)

如果r询问您想要更新哪个包,则应不需要更新它们:为“none”键入3。

  1. In the code, replace 比利时 with your country. Here is the list of all available countries in the dataset:

阿富汗, 阿尔巴尼亚 , 阿尔及利亚 , 安道尔 , 安哥拉 , 安提瓜和巴布达, 阿根廷, 亚美尼亚 , 奥地利 , 阿塞拜疆, 巴哈马 , 巴林 , 孟加拉国, 巴巴多斯 , 白俄罗斯 , 比利时 , 伯利兹 , 贝宁 , 不丹 , 玻利维亚 , 波斯尼亚和黑塞哥维那(简称:波黑, 博茨瓦纳, 巴西 , 文莱 , 保加利亚, 布基纳法索, 缅甸 , 布隆迪 , Cabo Verde., 柬埔寨, 喀麦隆, 中非共和国, 乍得 , 智利 , 哥伦比亚, 科摩罗 , 刚果(布拉柴维尔), 刚果(金沙萨), 哥斯达黎加, Cote d'ivoire., 克罗地亚 , 古巴 , 塞浦路斯 , 捷克语 , 丹麦 , 钻石公主, 吉布提, 多米尼克, 多明尼加共和国, 厄瓜多尔 , 埃及 , 萨尔瓦多, 赤道几内亚, 厄立特里亚 , 爱沙尼亚 , 埃斯瓦蒂尼, 埃塞俄比亚, 斐济 , 芬兰 , 法国 , 加蓬 , 冈比亚 , 乔治亚州 , 德国 , 加纳 , 希腊 , 格林纳达 , 危地马拉, 几内亚 , 几内亚比绍, 圭亚那 , 海地 , 教廷, 洪都拉斯, 匈牙利 , 冰岛 , 印度 , 印度尼西亚, 伊朗 , 伊拉克 , 爱尔兰 , 以色列 , 意大利 , 牙买加 , 日本 , 约旦 , 哈萨克斯坦, 肯尼亚 , 韩国,南方, 科索沃 , 科威特 , 吉尔吉斯斯坦, 老挝 , 拉脱维亚 , 黎巴嫩 , 莱索托 , 利比里亚 , 利比亚 , 列支敦士登, 立陶宛, 卢森堡, Zaandam女士, 马达加斯加, 马拉维 , 马来西亚, 马尔代夫, 马里 , 马耳他 , 马绍尔群岛, 毛里塔尼亚, 毛里求斯, 墨西哥 , 摩尔多瓦 , 摩纳哥 , 蒙古, 黑山, 摩洛哥 , 莫桑比克, 纳米比亚 , 尼泊尔 , 荷兰, 新西兰, 尼加拉瓜, 尼日尔 , 尼日利亚 , 北马其顿, 挪威 , 阿曼 , 巴基斯坦, 巴拿马 , 巴布亚新几内亚, 巴拉圭, 秘鲁 , 菲律宾, 波兰 , 葡萄牙, 卡塔尔 , 罗马尼亚 , 俄罗斯 , 卢旺达 , 圣基茨和尼维斯, 圣卢西亚, 圣文森特和格林纳丁斯, 萨摩亚 , 圣马力诺, 圣多美和普林西比, 沙特阿拉伯, 塞内加尔 , 塞尔维亚 , 塞舌尔, 塞拉利昂, 新加坡, 斯洛伐克, 斯洛文尼亚, 所罗门群岛, 索马里 , 南非, 南苏丹, 西班牙 , 斯里兰卡, 苏丹 , 苏里南, 瑞典 , 瑞士, 叙利亚 , _台湾*_, 塔吉克斯坦, 坦桑尼亚, 泰国, Timor-Leste., 多哥 , 特立尼达和多巴哥, 突尼斯 , 火鸡 , 我们 , 乌干达 , 乌克兰 , 阿拉伯联合酋长国, 英国, 乌拉圭 , 乌兹别克斯坦, 瓦努阿图 , 委内瑞拉, 越南 , 西岸和加沙, 也门 , 赞比亚 , 津巴布韦, 加拿大 , 中国 澳大利亚

请注意,如果您的国家/地区以两个单词或更多单词拼写,则需要通过反响(但仅在代码中的一个特定行,查看与英国的示例):

#----------------------------------------
# Plotting the data

daily_confirmed %>%
  plotly::plot_ly() %>%
  plotly::add_trace(
    x = ~date,
    y = ~`United Kingdom`,
    type = "scatter",
    mode = "lines+markers",
    name = "United Kingdom"
  ) %>%

Do not add backticks in the rest of the code as everywhere else the country’s name is surrounded by double quotes "".

Do not forget to also change the title and the author at the top of the document, and edit the about section at the bottom of the document. Last but not least, as you can see on the plot in the summary section, the arrows point to different (sad) “milestones” in Belgium (i.e., first case, first death and new containment measures). You will need to adapt these milestones for your country (or remove them if you do not want to have any milestone displayed on the plot). Change this in the code following the plotly::add_annotations() functions.

  1. 针织文件(见此 文章 如果您不熟悉R Markdown)。您的仪表板应以HTML格式出现。

以下这7个步骤后,您应该拥有特定于您所在国家/地区的简单仪表板。我故意保持简单,以便每个人都可以复制它并在有限的时间内拥有自己的仪表板。

如果你熟悉了 {flexdashboard}, {plotly}{leaflet} 仪表板接口和可视化的软件包,以及 {dplyr}{tidyr} 数据操作包,随时根据您的需求编辑代码,并改进仪表板。

附加条款

数据

此仪表板的输入数据是可从中获取的数据集 {coronavirus} R包裹。确保下载包的开发版本以具有最新数据:

install.packages("devtools")
devtools::install_github("RamiKrispin/coronavirus")

To update your dashboard with the latest data, you have to manually update the data by reinstalling the {coronavirus} package with devtools::install_github("RamiKrispin/coronavirus", force = TRUE). Again, if R asks you whether you would like to update other packages, type 3 for “None”.

这个问题经常提出,所以我重复,你的仪表板不会每天自行更新,你需要手动更新它。更新数据后,您可能还需要重新启动r会话以便拥有最后一个可用数据。

原始数据从约翰霍普金斯大学系统科学和工程中心(JHU CCSE)冠状病毒 存储库.

开源

此仪表板和可用的代码 GitHub. 是开源,所以随意复制它,调整它并尽可能多地分享它。

准确性

请注意,此仪表板主要用于教育目的。我经常更新仪表板以保持准确。然而,关于Covid-19案例数量的一些不确定性,并且测试方法在国家之间变化,因此与其他来源相比,该仪表板上的数字可能略有不同。目前,维护者 数据集 每天更新它,但更新在未来可能会频繁频繁。

发布您的仪表板

如果要共享仪表板,您可以:

  • 如果您有一个(我强烈建议您,请在网站上上传 创建一个 如果你还没有)
  • 通过 Rpubs. (直接从Rstudio免费发布您的工作是免费且容易发布的)

谢谢阅读。我希望这篇文章有助于您在R中建立第一个Coronavirus仪表板。看到这些 新冠病毒上的顶级资源 如果您需要灵感来增强您的仪表板。

一如既往,如果您有问题或与本文所涵盖的主题相关的建议,请将其添加为评论,以便其他读者可以从讨论中受益。


  1. 如果有人愿意创建关于使用此编程语言制作的coronavirus的资源集合,我很乐意提及一个Python资源。随意地 联络我 if this is the case. ↩︎



喜欢这篇文章?

获取更新 每次发布新文章。
任何垃圾邮件都没有任何垃圾邮件。
分享: