gpt4 book ai didi

r - Plotly 的 fillcolor 默认为半透明,想要不透明

转载 作者:行者123 更新时间:2023-12-04 12:17:49 24 4
gpt4 key购买 nike

我正在尝试使用 plotly 在 R 中构建 map 。我将在对这篇文章的回复中分享构建数据框所需的代码。这是我用来绘制图表的代码:

florida %>%
group_by(group) %>%
plot_ly(x = ~long, y = ~lat,
color = ~color_vals, colors = 'Blues') %>%
add_polygons(line = list(width = 2),
# fillcolor = 'WHAT GOES HERE',
opacity = 1, showlegend = FALSE)

这是我得到的输出:
enter image description here

我的问题很容易理解,但我找不到解决此问题的方法。我希望每个不同县的填充颜色与该县的边界线的蓝色阴影相同。在 plotly 的文档中,它说明了 fillcolor:

填充颜​​色(颜色)
设置填充颜色。默认为线条颜色、标记颜色或标记线条颜色的半透明变体,以可用者为准。

这就是问题所在......我不想要线条颜色的半透明变体,我想要实际的线条颜色!我尝试将许多不同的值传递给 fillcolor 参数,但没有成功。对此的任何帮助将不胜感激!

谢谢!

编辑 - 佛罗里达州数据帧上的 dput 非常非常大,超过了 RStudio 控制台的最大打印输出。不过这里有一些类似的、可重复的示例 - https://plot.ly/r/county-level-choropleth/ .

最佳答案

我对 plotly 进行了深入研究,但没有找到直接解决方案。但是,我们可以使用函数 prependContent来自 htmlwidgets包来调整渲染图。
这是一个简单的例子:

library(plotly)
library(dplyr)
library(htmlwidgets)
library(htmltools)

# define utility function to adjust fill-opacity using css
fillOpacity <- function(., alpha = 0.5) {
css <- sprintf("<style> .js-fill { fill-opacity: %s !important; } </style>", alpha)
prependContent(., HTML(css))
}


ggplot2::map_data("world") %>%
group_by(group) %>%
plot_ly(x = ~long, y = ~lat) %>%
add_polygons() %>%
fillOpacity(alpha = 1)

我们基本上将一些 CSS 注入(inject)小部件容器并使用 !important以确保样式不会被覆盖。

在这里您可以看到 alpha = 0 的结果, 0.25 , 0.751 :

enter image description here

关于r - Plotly 的 fillcolor 默认为半透明,想要不透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com