标签: cartogram

R中的Cartogram + choropleth地图

我最近一直在使用ggplot2来创建一堆等值线.我想知道是否可以使用ggplot2来创建类似于此的地图(来自WorldMapper):

在此输入图像描述

这是一个等角度,其中shapefile多边形被扭曲以表示相对人口数.我相信这被称为制图.他们用一堆其他变量做到这一点.本着Choropleth R Challenge的精神,有谁知道如何使用R?

r ggplot2 cartogram

33
推荐指数
1
解决办法
6305
查看次数

用Matplotlib绘制制图?

如果有人不知道:制图是一种地图类型,其中一些依赖于国家/地区的数字属性缩放相应的区域,以便该属性的密度(接近)恒定.一个例子是

示例制图

来自worldmapper.org.在这个例子中,国家根据人口规模进行调整,导致人口密度接近恒定.

不用说,这真的很酷.有没有人知道用于绘制此类地图的基于Matplotlib的库?worldmapper.org中使用的方法在(1)中描述,所以如果还没有人实现这个,我会感到惊讶......

我也有兴趣听说其他的图纸库,即使它们不是为Matplotlib制作的.

(1)Michael T. Gastner和MEJ Newman,基于扩散的密度均衡图制作方法,Proc.纳特.科学院.科学.美国,101,7499-7504(2004).可在arXiv上购买.

visualization matplotlib cartography cartogram

14
推荐指数
1
解决办法
2510
查看次数

在SpatialPolygonsDataFrame对象上使用Rcartogram

我试图在这个问题中做同样的事情,在R中的Cartogram + choropleth map,但是从SpatialPolygonsDataFrame开始并希望最终得到相同类型的对象.

我可以将对象保存为shapefile,使用scapetoad,重新打开它并转换回来,但我宁愿将它全部放在R中,以便程序完全可重现,这样我就可以自动编写几十种变体.

我已经在github上分配了Rcartogram代码,并在此处添加了我的努力.

本演示的基本内容是在地图上创建一个SpatialGrid,在网格的每个点查找人口密度,并将其转换为cartogram()处理所需格式的密度矩阵.到现在为止还挺好.

但是,如何根据输出来插入原始地图点cartogram()

这里有两个问题.第一种是将地图和网格放入相同的单位以允许插值.第二种是访问每个多边形的每个点,对其进行插值,并使它们保持正确的顺序.

网格以网格为单位,地图以投影单位表示(在示例longlat的情况下).必须将网格投影到longlat中,或将地图投影到网格单元中.我的想法是制作一个伪CRS并将其与spTransform()函数一起使用package(rgdal),因为它可以轻松处理对象中的每个点.

访问每个点很困难,因为它们是SpPDF对象的几个层:对象>多边形>多边形>线>坐标我认为.任何想法如何访问这些,同时保持整个地图的结构完整?

maps r rgdal cartogram

7
推荐指数
1
解决办法
458
查看次数

算法(和工具)从shapefile创建加权 - 制图?

我可以使用什么算法来生成加权图表,如下所示: http://www.brainpickings.org/index.php/2010/04/15/cartograms/

我可以使用R,.NET库和PostGIS中的代码生成shapefile图.但是,我找不到用于查找用于生成这些扭曲的shapefile图的算法的实现的搜索项.不一定只想绘制世界地图,因此必须能够使用任意shapefile.

c# postgis r shapefile cartogram

7
推荐指数
1
解决办法
556
查看次数

安装Rcartogram包 - 错误消息

我正在尝试建立像这里的制图

从链接安装不起作用:

`install.packages('Rcartogram', repos = 'http://www.omegahat.org/R', type = 'source')`
Installing package into ‘C:/Users/Milena/Documents/R/win-library/3.2’
(as `lib` is unspecified)

Warning in install.packages :
  package ‘Rcartogram’ is not available (for R version 3.2.0)
Run Code Online (Sandbox Code Playgroud)

从zip文件中都没有:

install.packages("C:/Users/Milena/Downloads/Rcartogram_0.2-2.tar.gz", repos = NULL, type = "source")

将软件包安装到'C:/Users/Milena/Documents/R/win-library/3.2'(lib未指定)*安装Rcartogram... **********************************************
WARNING: this package has a configure script It probably needs manual configuration **********************************************

**libs

***arch - i386警告:运行命令'make -f"Makevars"-f"C:/PROGRA~1/R/R-3.2.0/etc/i386/Makeconf"-f"C:/ PROGRA~1 /R/R-3.2.0/share/make/winshlib.mk"SHLIB ="Rcartogram.dll"OBJECTS ="Rcart.o cart.o"'状态为127 ERROR:包'Rcartogram'*删除'的编译失败C:/Users/Milena/Documents/R/win-library/3.2/Rcartogram'instault.packages中的警告:运行命令'"C:/PROGRA~1/R/R-3.2.0/bin/x64/R" CMD INSTALL -l"C:\ Users\Milena\Documents\R\win-library\3.2""C:/Users/Milena/Downloads/Rcartogram_0.2-2.tar.gz"'安装时状态为1警告.包:安装包'C:/Users/Milena/Downloads/Rcartogram_0.2-2.tar.gz'具有非零退出状态

我怎么解决这个问题?

我正在使用Windows机器. …

windows r cartogram

6
推荐指数
1
解决办法
2312
查看次数

D3.js - 从版本2中的path.area更改为版本4

我正在尝试更新d3-cartogram以使用D3.js版本4.到目前为止,一切都很顺利 - 我刚刚更新了所有函数,以便它们被编写在版本4的扁平命名空间中.例如而不是d3.geo.path(),它d3.geoPath().我还更改了一些小东西,以便代码可以使用最新版本的TopoJSON.例如,而不是topojson.object(topology, geom).coordinates,它是topojson.feature(topology, geom).geometry.coordinates.

但我遇到了一个似乎无法解决的问题.该文件cartogram.js有一行读取var areas = objects.map(path.area),其中objects是TopoJSON功能的集合.path.area在D3.js版本2和4中是不同的,我似乎无法调和它们.如果我控制台在每个版本中记录它,它看起来像这样:

  • 版本2: function (n){return n&&e.hasOwnProperty(n.type)?e[n.type](n):t}
  • 第4版: function (t){return U_(t,r(Ag)),Ag.result()}

在版本4中,它记录错误:Uncaught TypeError: r is not a function.当然,我已经用Google搜索了错误以及我正在尝试做的各种描述,但我没有运气.在此先感谢您的帮助.

javascript d3.js topojson cartogram

1
推荐指数
1
解决办法
285
查看次数