如何解决叶绿素图中的离散颜色不会显示所有级别
我正在尝试绘制哥伦比亚省份地图和具有8个等级的因子变量,我正在使用经纬度坐标。
我的数据框如下:
> head(df[,c('CODMPIO','Esc2a','Longitud','Latitud')])
# A tibble: 6 x 4
CODMPIO Esc2a Longitud Latitud
<chr> <fct> <dbl> <dbl>
1 05001 4 -75.6 6.25
2 05002 5 -75.4 5.79
3 05004 7 -76.1 6.63
4 05021 5 -75.1 6.38
5 05030 7 -75.7 6.04
6 05031 7 -75.1 6.91
并且geojson具有坐标和这些列:
$properties
$properties$DPTOMPIO
[1] "05001"
$properties$DPTO_CCDGO
[1] "05"
$properties$MPIO_CCDGO
[1] "001"
$properties$MPIO_CNMBR
[1] "MEDELLÍN"
$properties$MPIO_CCNCT
[1] "05001"
properties $ DPTOMPIO
与
相同df $ CODMPIO
最后,我所有的代码就是这个
df$Esc2a = factor(df$Esc2a)
df$test = as.numeric(df$Esc2a)
nfactor = length(levels(df$Esc2a))
foo <- brewer.pal(n = nfactor,name = "Set1")
names(foo) = levels(df$Esc2a)
Z_Breaks = function(n){
CUTS = seq(0,1,length.out=n+1)
rep(CUTS,ifelse(CUTS %in% 0:1,2))
}
colorScale <- data.frame(z=Z_Breaks(nfactor),col=rep(foo,each=2),stringsAsFactors=FALSE)
g <- list(
fitbounds = "locations",visible = FALSE
)
fig <- plot_ly()
fig <- fig %>% add_trace(
data=df,type="choropleth",geojson=geojson,locations= ~CODMPIO,z=df$test,colorscale=colorScale,colorbar=list(tickvals=1:nfactor,ticktext=names(foo)),featureidkey="properties.DPTOMPIO"
)
fig <- fig %>% layout(
geo = g
)
fig
第一行使用的是对此问题How to create a chloropleth map in R Plotly based on a Categorical variable?的答案
我得到以下情节
它正确地对因素进行了分类,当我将鼠标悬停在上面时,它会向我显示正确的值和正确的ID,但是如您所见,它没有着色,因为它应该只对最后一行进行正确的着色(绿色)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。