R语言 Plotly分区体积图不透明度

idv4meu8  于 2023-09-27  发布在  其他
关注(0)|答案(3)|浏览(120)

我正在遵循本页给出的构建分区图的模型:多边形的颜色有点透明,我尝试改变不透明度的任何东西都没有任何效果。

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中,并尝试使用自己的自定义色标,但它们似乎都具有相同的透明度。我可以摆脱网格线,但我仍然坚持与褪色的柔和的颜色。

编辑:比较Plotly中制作的Map和我在Leaflet中使用完全相同的调色板制作的Map,只是为了显示我得到的和我想要的之间的差异。(忽略背景单张Map和县线,对颜色没有影响。

Plotly

宣传单

kx1ctssn

kx1ctssn1#

看来你的不透明度已经为默认调色板最大了.如你所见,我可以使图像更加不透明:

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

因此,如果您使用不同的调色板(在本例中,我使用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))

2izufjch

2izufjch2#

这使我心烦意乱。尽管Plotly越来越强大,但它仍然有一些非常基本的缺点。我试图用导入的多边形数据制作一张中国各省的分区图,但不知道为什么颜色被洗掉了。我还遇到了一个问题,在顶部添加另一条轨迹以获得黑色轮廓将使整个Map呈浅灰色,掩盖了下面的颜色。
在花了比我应该花的时间更多的时间之后,我终于在手册中发现了这个,在scattergeo下(因为这个Map的类型实际上不是choropleth):
fillcolor(颜色)
设置填充颜色。默认为线颜色、标记颜色或标记线颜色的半透明变体,以可用的为准。
换句话说:colorcolors实际上作用于线条颜色,而不是fillcolor。如果未设置fillcolor,它将获得与线条相同的颜色,不透明度为50%。应该有一种方法可以让colorcolors直接在fillcolor上工作,但似乎不是这样。Fillcolor只能设置为单一颜色,不能根据变量更改其值。
我不是Plotly的Maven,但这是我对它如何工作的理解。

u7up0aaq

u7up0aaq3#

你可以简单地在plot_ly调用中添加alpha=1

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

相关问题