R的基本等值线状态图

时间:2010-11-02 00:34:31

标签: r gis

我道歉,因为我很确定这是一个基本问题。我想要做的就是使用maps包在R中创建一个非常简单的等值区域图。这是我第一次尝试映射R中的任何数据。

我的地理位置是包括DC在内的48个州。以下是我想要绘制的数据集的前几行。

> head(choro, n=7)
    AL     AR     AZ     CA     CO     CT     DC 
 "red"  "red"  "red" "blue" "blue" "blue"  "red" 

当我尝试绘制基本地图时:

map("state",
        regions = names(choro),
        lty = 1, lwd =1,
        boundary=TRUE,
        fill=TRUE,
        col=choro)

attached image就是我看到的。我是R的新手,但我认为未填写的状态没有正确合并,但我相信我使用的是“标准”状态缩写。

我做错了什么!/需要修理?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

如果你拿出regions = names(choro),你会得到一张更完整的地图。如果你想要绘制choro矢量中可能缺少的项目,那么为什么不用“white”代替颜色?alt text如果你需要更完整的答案,那么提供choro的完整副本。

choro <- c( "red",  "red",  "red" ,"blue" ,"blue", "blue",  "red")
require(maps)
data(state)
names(choro) <-names(state)[1:7]
map("state",  lty = 1, lwd =1,
        boundary=TRUE, fill=TRUE,
        col=choro)

见附图:

答案 1 :(得分:1)

此处的相关问题:Choropleth mapping issue in R 这里有教程:http://www.thisisthegreenroom.com/2009/choropleths-in-r/

如前所述,您需要将颜色与绘制的区域合并。上面的第二个链接显示了一种技术,可以将状态缩写与R想要/需要使用maps包的完整状态名称进行匹配。根据您的choro数据的来源,在读入R之前用状态名称替换状态缩写可能最简单。另外需要注意的是,有63个状态对象被绘制。例如,New Yorsk有几个不同的对象。对于完整的地图,必须映射到这些重复项。

我建议两次调用map函数 - 第一个绘制填充,第二个添加不同的轮廓。例如:

# Extract mapnames for States
mapnames <- data.frame(
    state = map("state",plot=FALSE)[4]$names
    , col = sample(c("pink", "purple", "lavender", "blue"), 63, replace = TRUE)
)

#Plot the colors
map("state", regions = mapnames$state, col = mapnames$col, fill = TRUE, lty = 1, lwd= 1)
#Plot the outlines
map("state", regions = mapnames$state, col = "black", fill = FALSE, add = TRUE, lty = 1, lwd = 1)

您还可以查看map_data()中的ggplot2函数,了解合并数据以便轻松创建等值区域图的其他示例。