如何在D3地图中进行时间数据处理

How to do time-data in D3 maps

本文关键字:时间 数据处理 地图 D3      更新时间:2023-09-26

我有一个时间序列数据集,我想把它放在地图上——这是一个不规则的国家事件时间序列,按日期和国家索引。我使用D3做了一些简单的事情,但不确定如何在这里组织数据,即使是在概念上。我查过了。。。

  • http://bl.ocks.org/mbostock/4060606
  • http://bl.ocks.org/mbostock/3306362
  • http://bl.ocks.org/jasondavies/4188334

用于地图制作,并且很乐意生成.json地图本身:

wget "http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip"
unzip ne_50m_admin_0_countries.zip
ogr2ogr -f "GeoJSON" output_features.json ne_50m_admin_0_countries.shp -select iso_a3
topojson -o topo.json output_features.json --id-property iso_a3

然而,当我的数据看起来像这样时。。。

incidents.csv
date, iso3, eventtype
2001-05-21, ABW, a
2002-01-01, ABW, a
2005-07-31, ABW, b
2003-02-21, AFG, b
2008-02-21, AFG, c
2000-03-09, AGO, a
2010-06-11, AGO, c

我甚至不知道如何将它"附加"到地图上——时间是另一个维度。每个国家形状是否都有一个时间向量,其中也包括一个"事件类型"?所有事件类型?怎样

一方面,我可以看到提前聚合某些东西的效用,达到。。。

ABW, a, 2 
ABW, b, 1
ABW, c, 0
AFG, a, 0
AFG, b, 1
AFG, c, 1
AGO, a, 1
AGO, b, 0
AGO, c, 1

以某种方式连接这个和那个可能会产生一个很好的合唱。

但我真的很想保留时间部分。理想情况下,我希望在地图的底部有两个滑动条,我可以使用它只显示在给定开始日期和结束日期之间发生的事件类型的聚合。

我擅长python和时间序列数据,但我意识到我在D3方面有点超出了我的技能——我该如何开始,在D3中,在topojson中附加和处理分类的、不规则的时间序列数据的首选方式是什么?我该如何解决这个问题?

(我还有一个关于不那么复杂的gis stackexchange上的工作流的相关问题。)

我想我会为其他人填写一个临时答案:

地图上的时间真的很难,而且有点不通用。您将花费大量时间进行正确的界面设计。