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)
我的第一个猜测是,可能证明ISO代码不是指定locations
参数的正确方法.如果是这样,那么需要什么呢?或者我是否需要设置locationmode
上面代码中使用的参数?这会对欧洲有什么影响?
谁能帮我这个?谢谢!
你的代码似乎对我有用。我创建了一个数据框,如下所示,并将其传递给您上面提供的代码,我收到的输出是:
我预计问题出在传递给代码的数据帧的格式上,请检查 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 。