簡體   English   中英

如何獲得州名以及如何在R中的美國熱圖圖上疊加其值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM