【发布时间】:2018-02-07 19:16:58
【问题描述】:
我有一组 1000 个坐标,每个坐标代表一个特定州的城市中心。这些镇属于 20 个县之一,我知道哪些镇属于哪个县。我希望根据每个县的数据对地图进行着色。例如,如果一个县的值为 100%,那么我希望将该县涂成深红色,如果一个县与 0% 相关联,那么我会将这部分地图涂成白色。
我没有每个县的边界,因为这些都是旧县,从旧地图中追踪边界需要大量工作。我有国家的边界,包括岛屿和湖泊等。
所以这是我拥有的数据:
Town1 50.1,4.89 County1
Town2 49.9,4.78 County1
Town3 50.3,4.59 County1
Town4 50.2,4.99 County1
Town5 50.0,4.99 County1
...
Town1000 57.0,8.33 County20
和
County1 100%
County2 100%
County3 68%
...
County20 0%
以及州界。
解决方案1:因此,创建所需地图的一种方法可能是在每个坐标(城镇)周围创建多边形,该多边形代表地图上最靠近该城镇的所有区域,并且不靠近其他城镇。然后我根据它所在县的数据为这个多边形着色。
解决方案 2:也许更好的方法是在城镇之间混合颜色。因此,如果我在不同的县有两个相邻的城镇,一个是 100%,一个是 0%,那么它们之间的中间点将是粉红色(深红色和白色之间的中间点)。
因此,我希望以图像文件的形式以编程方式生成此地图,该文件易于扩展,并且我可以将其导入到 Photoshop 之类的软件中以添加其他元素。在这种情况下你会推荐 SVG 吗?
我可以使用什么库或算法来生成解决方案 1 中要求的多边形?
是否有一个库可用于生成具有解决方案 2 要求的渐变网格的 SVG 文档?
如果可能,我希望使用 Python3,但我对其他语言持开放态度。我也对 SVG 的其他解决方案和替代方案持开放态度。
我正在使用 MacOS。
【问题讨论】:
-
在python的
matplotlib中有二维直方图,hexbin...python-graph-gallery.com/2d-density-plot和python-graph-gallery.com/heatmap
标签: python macos svg geometry geospatial