如何使用plot_geo()创建一个等值区域图?

ale*_*lex 5 dictionary r plotly

我试图在R中绘制一个等值区域图,并使用此函数找到一些非常有前途的代码plot_geo():https://plot.ly/r/choropleth-maps/ .不幸的是我无法找到如何使代码适应我的问题,我在互联网上找不到有用的解释.

这是原始代码:

# specify some map projection/options
g <- list(
  scope = 'usa',
  projection = list(type = 'albers usa'),
  showlakes = TRUE,
  lakecolor = toRGB('white')
)

plot_geo(df, locationmode = 'USA-states') %>%
  add_trace(
    z = ~total.exports, text = ~hover, locations = ~code,
    color = ~total.exports, colors = 'Purples'
  ) %>%
  colorbar(title = "Millions USD") %>%
  layout(
    title = '2011 US Agriculture Exports by State<br>(Hover for breakdown)',
    geo = g
  )
Run Code Online (Sandbox Code Playgroud)

我使用的数据是一个数值,确定填充国家的颜色,以及所有欧洲国家的两位数ISO代码.所以,既然我想创建一个欧洲地图,我设置scope = 'europe'但我不明白projection = list(type = 'albers usa')我需要指定什么做什么.我就这么放弃了.

g <- list(
  scope = 'europe')
Run Code Online (Sandbox Code Playgroud)

我尝试运行以下代码,但生成的地图是"空的",即没有任何国家的颜色.

plot_geo(data) %>%
  add_trace(
    z = ~value, locations = ~LAND_ISO,
    color = ~value, colors = 'Purples'
  ) %>%
  colorbar(title = "") %>%
  layout(geo = g
  )
Run Code Online (Sandbox Code Playgroud)

使用plot_geo的空地图

我的第一个猜测是,可能证明ISO代码不是指定locations参数的正确方法.如果是这样,那么需要什么呢?或者我是否需要设置locationmode上面代码中使用的参数?这会对欧洲有什么影响?

谁能帮我这个?谢谢!

Gra*_*eme 2

你的代码似乎对我有用。我创建了一个数据框,如下所示,并将其传递给您上面提供的代码,我收到的输出是:

欧洲地图

我预计问题出在传递给代码的数据帧的格式上,请检查 ISO-3 代码是否为字符串以及值是否为数字等。

library(plotly)

#Create dataframe with toy data:
  LAND_ISO <- c("AUT","BEL","BGR","HRV","CYP","CZE","DNK","EST","FIN","FRA","DEU","GRC","HUN","IRL","ITA","LVA","LTU","LUX","MLT","NLD","POL","PRT","ROU","SVK","SVN","ESP","SWE","GBR")
  value <- runif(length(LAND_ISO), 1, 10)

  data <- data.frame(LAND_ISO, value)

# Run your code:
g <- list(
  scope = 'europe')

plot_geo(data) %>%
  add_trace(
    z = ~value, locations = ~LAND_ISO,
    color = ~value, colors = 'Purples'
  ) %>%
  colorbar(title = "") %>%
  layout(geo = g
  )
Run Code Online (Sandbox Code Playgroud)

仅供参考我相信

投影=列表(类型='阿尔伯斯美国')

只需选择用于从 3D 地球仪创建 2D 地图的投影方法 -有关更多详细信息,请参阅https://en.wikipedia.org/wiki/Map_projection 。