从R中的Leaflet贴图中移除灰色/灰色阴影

时间:2018-08-03 21:44:32

标签: r dictionary leaflet

伙计,我有问题。我的地图上有不寻常的灰色阴影。 我使用shapefile

countries <- readOGR(".","ne_50m_admin_0_countries")

或geojson

url <- "https://raw.githubusercontent.com/datasets/geo-countries/master/data/countries.geojson"
countries <- geojson_read(url, what = "sp")

没关系,两者都有相同的错误。

enter image description here

我以前遇到过这个问题,但没有找到可持续的解决方案,而我的搜索也无济于事,这就是为什么我在这里。

我如何着色?

# Color palette
colorFactors = colorFactor(c('red', 'orange', 'blue', 'green'),
                      domain = dfs_pg$Region)

# Create a map
leaflet(dfs_pg) %>%
addProviderTiles(providers$OpenStreetMap) %>%
addPolygons(stroke = FALSE, 
          fillOpacity = 0.75, 
          color = colorFactors(dfs_pg$Region), weight = 1)

有多个NA,我试图将它们省略-对我不起作用。我想保持NA与原始提供者相同的颜色而没有此阴影。

我将csv和geojson合并到空间数据框中。

对于任何提供程序,同样的问题。

非常感谢您的帮助! 谢谢!

1 个答案:

答案 0 :(得分:0)

在R社区的帮助下完美解决。在此处输入图片说明

治疗NA是关键:

“”如果您查看data_pg_df $ Region,您会看到它具有许多NA:

---
myfacts_array:
  - 123456
  - 456789

使用data_pg_df $ Region == input $ regionInput,您正在将其与一个值进行比较,例如     “亚洲”。在R中,如果将值与NA进行比较,则得到NA。

> data_pg_df$Region
[1] NA              NA              NA              NA              NA             
[6] NA              NA              NA              "Latin America" NA             
[11] NA              NA              NA              NA              NA             
[16] NA              NA              NA              NA              NA             
[21] NA              NA              NA              NA              NA             
[26] NA              NA              NA              NA              NA             
[31] NA              NA              NA              NA              NA             
[36] NA              NA              NA              "North America" NA             
[41] NA              "Asia"          NA              NA              NA             
[46] NA              NA              NA              NA              NA             
[51] NA              NA              NA              NA              NA             
[56] NA              NA              "Europe"        NA              NA             
[61] NA              NA              NA              NA              NA          
...   

并且您不能使用NA索引到data_pg_df对象。

您需要以某种方式处理NA。我不确定是否适合您的数据集,但似乎您可能只想保留==解析为TRUE的行,并删除将导致NA和FALSE的行。为此,您可以使用is.na()添加支票:

> data_pg_df$Region == "Asia"
[1]    NA    NA    NA    NA    NA    NA    NA    NA FALSE    NA    NA    NA    NA    
NA    NA
[16]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    
NA    NA
[31]    NA    NA    NA    NA    NA    NA    NA    NA FALSE    NA    NA  TRUE    NA    
NA    NA
[46]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA FALSE    
NA    NA
[61]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    
NA    NA
...

... 因此,您将拥有:

!is.na(data_pg_df$Region) & data_pg_df$Region == "Asia"
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
FALSE FALSE
[16] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
FALSE FALSE
[31] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE 
FALSE FALSE
[46] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
FALSE FALSE
[61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
FALSE FALSE

enter image description here