Plotly choropleth地图不透明

时间:2017-10-09 19:43:12

标签: r colors plotly choropleth

我正在关注用于构建此页面上的等值区域地图的模型:https://plot.ly/r/county-level-choropleth/。多边形颜色有点透明,我试图改变不透明度的任何东西都没有任何效果。

library(ggplot2) # For the demo map data
library(plotly)

ohio_counties <- map_data('county', 'ohio')
# This id simulates the categorical variable I'm trying to represent with color
ohio_counties$id <- letters[ohio_counties$group %% 6 + 1]

ohio_counties %>%
  group_by(group) %>%
  plot_ly(x = ~long,
          y = ~lat,
          color = ~id) %>%
  add_polygons(line = list(width = 0.4)) 

我已尝试将opacity = 1作为参数添加到plot_ly()来电和add_polygons,我尝试使用自己的自定义色标,但似乎所有人都有相同数量的透明度。我可以摆脱网格线,但后来我仍然坚持使用褪色的柔和色彩。

enter image description here

编辑:使用完全相同的调色板比较Plotly中制作的地图与我在Leaflet中制作的地图,只是为了显示我得到的和我想要的之间的区别。 (忽略背景传单地图和县行,对颜色没有影响。)

Plotly

Map made in plotly

单张

Map made in leaflet

2 个答案:

答案 0 :(得分:1)

您的不透明度似乎已经超出了默认调色板......如您所见,我可以使图像更不透明:

> ohio_counties %>%
+     group_by(group) %>%
+     plot_ly(x = ~long,
+             y = ~lat,
+             color = ~id,opacity=.2) %>%
+     add_polygons(line = list(width = 0.4)) 

Extremely See-Through

所以,如果你使用不同的调色板(在这种情况下我使用的是viridis :: magma)

> require(viridis)
> ohio_counties %>%
+     group_by(group) %>%
+     plot_ly(x = ~long,
+             y = ~lat,
+             color = ~id,colors=viridis::magma(6)) %>%
+     add_polygons(line = list(width = 0.4))

enter image description here

答案 1 :(得分:1)

这让我分心。尽管Plotly变得非常强大,但它仍然存在一些非常基本的缺点。我试图使用导入的多边形数据制作中国省份的等值线图,但无法弄清楚为什么颜色会被淘汰。我还有一个问题,即在顶部添加另一条痕迹以获得黑色轮廓会使整个地图变为浅灰色,从而掩盖下面的颜色。

花了更多的时间比我应该弄清楚的那样,我终于在手册中发现了这个,在scattergeo下(因为这张地图的类型实际上不是等等):

  

fillcolor(颜色)

     

设置填充颜色。默认为半透明   线条颜色,标记颜色或标记线颜色的变体,   无论哪个可用。

换句话说:colorcolors实际上适用于线条颜色,而不是fillcolor。如果未设置fillcolor,则会获得与线条相同的颜色,不透明度为50%。 colorcolors应该有办法直接在fillcolor上工作,但事实并非如此。 Fillcolor只能设置为单一颜色,而不是根据变量更改其值。

我不是Plotly的专家,但这是我对它如何运作的理解。