这是一个新手问题。我想绘制美国地图中的州级失业情况。在这里和其他地方已经就如何绘制县级失业以及与之相关的问题进行了深入的讨论。代码看起来很吓人。是否有一个简单的代码,它有两列,一个状态代码和一个指示数字间隔的因子变量,并产生一个彩色的美国地图(基于因子变量)。补充问题是,如果我需要更进一步并创建类似的情节,但美国主要城市的失业率如何修改代码。 提前谢谢。
答案 0 :(得分:25)
这是一段快速的代码,其中包含解释每个步骤的注释。如果您有疑问,请告诉我
# load libraries
library(XML);
library(ggplot2);
library(maps);
library(plyr);
# read the data from the bls website with correct column formats
unemp = readHTMLTable('http://www.bls.gov/web/laus/laumstrk.htm',
colClasses = c('character', 'character', 'numeric'))[[2]];
# rename columns and convert region to lowercase
names(unemp) = c('rank', 'region', 'rate');
unemp$region = tolower(unemp$region);
# get us state map data and merge with unemp
us_state_map = map_data('state');
map_data = merge(unemp, us_state_map, by = 'region');
# keep data sorted by polygon order
map_data = arrange(map_data, order);
# plot map using ggplot2
p0 = ggplot(map_data, aes(x = long, y = lat, group = group)) +
geom_polygon(aes(fill = cut_number(rate, 5))) +
geom_path(colour = 'gray', linestyle = 2) +
scale_fill_brewer('Unemployment Rate (Jan 2011)', pal = 'PuRd') +
coord_map();
#You may need to spell out the argument pal as pallete
答案 1 :(得分:1)
拉姆纳特钉了这个。如果您仍在寻找其他解决方案,那么在SAS-and-R博客上有一个不错的example using other packages。