[英]How to get state name and how to superimpose its value on heat map plot for USA in R
我正在嘗試繪制美國的熱圖,並分別標明州名和州名。 我獲取熱圖的代碼是:
library(maps)
library(maptools)
library(sp)
txt <- "AB AK AL AN AR AZ CA CO CT DC DE EN FL GA HI IA ID IL IN KS
1 21 31 1 12 56 316 53 31 16 7 1 335 63 11 42 29 73 40 2"
dat <- stack(read.table(text = txt, header = TRUE))
names(dat)[2] <-'state.abb'
dat$states <- tolower(state.name[match(dat$state.abb, state.abb)])
mapUSA <- map('state', fill=TRUE, plot=FALSE)
nms <- sapply(strsplit(mapUSA$names, ':'), function(x)x[1])
USApolygons <- map2SpatialPolygons(mapUSA, IDs = nms, CRS('+proj=longlat'))
idx <- match(unique(nms), dat$states)
dat2 <- data.frame(value = dat$value[idx], state = unique(nms))
row.names(dat2) <- unique(nms)
USAsp <- SpatialPolygonsDataFrame(USApolygons, data = dat2)
spplot(USAsp['value'])
這是先前在stackoverflow中定義的代碼,我用於分析,但是我需要在繪圖上添加狀態標簽及其值。 我在這里獲得此代碼的輸出: 在這里,我需要顯示狀態名稱及其在相應狀態下的對應值。 請為此提出解決方案。
您可以嘗試將spplot函數更改為此:
spplot(USAsp['value'],panel = function(x,y,z,subscripts,...) {
panel.polygonsplot(x,y,z,subscripts,...)
sp.text(coordinates(USAsp[!is.na(USAsp$value),]),
paste(row.names(USAsp[!is.na(USAsp$value),]),"\n",USAsp$value[!is.na(USAsp$value)])) })
通過將面板功能添加到繪圖,可以在狀態中數據中具有值的坐標處添加文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.