r 使用 lat lon 而不是 fips 代码绘制组合气泡和等值线图

r plotly combined bubble and choropleth map using lat lon instead of fips code

我有一个包含列“state_name”、“county_name”、“value1”、“value2”、“lat”和“lon”的数据集。 我尝试将 Plotly 网站和其他资源中的示例应用到我的数据中,但我没有得到任何运气。他们似乎只有 fipscode 的示例,我不确定如何在我的代码中使用“lat”和“lon”信息。

这是我从 plotly 网站上找到的示例代码。有没有办法只用“纬度”和“经度”信息绘制地图,而不必使用县 JSON 和 fips 代码?

library(rjson)
library(plotly)

url <- 'https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json'
counties <- rjson::fromJSON(file=url)
url2<- "https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv"
df <- read.csv(url2, colClasses=c(fips="character"))
fig <- plot_ly() 
fig <- fig %>% add_trace(
    type="choroplethmapbox",
    geojson=counties,
    locations=df$fips,
    z=df$unemp,
    colorscale="Viridis",
    zmin=0,
    zmax=12,
    marker=list(line=list(
      width=0),
      opacity=0.5
    )
  )
fig <- fig %>% layout(
    mapbox=list(
      style="carto-positron",
      zoom =2,
      center=list(lon= -95.71, lat=37.09))
  )
fig

鉴于您提供的示例,我假设您想要按值 1 或值 2 为县着色。在这种情况下,您认为您需要 geojson,因为它们绘制了县的边界,以便可以应用颜色渐变。取决于您要查找的内容:

  • 如果您正在寻找填充县样式(严格来说是分区统计图),您可以使用此数据集 (Counties and FIPS Dataset) 从 state_name 和 county_name 转换 fips 代码;您可以按县和州合并以获得 FIPS 代码。
  • 如果您不是在寻找等值线图,则可能不需要 geojson 对象;气泡图可能更合适 (Plotly bubble Maps),因为您只需要纬度和经度来绘制它。