gpt4 book ai didi

javascript - R 中带有 addCircleMarkers 的传单 map 图例中的圆圈 - 没有 Shiny

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:01 24 4
gpt4 key购买 nike

我正在用 R 创建一张传单 map - 我不需要构建一个 Shiny 的应用程序,而且还没有解决那个特定的技能集!

我试图按照这里的这篇文章在我的图例中创建圆圈: Creating legend with circles leaflet R .

但是,我不确定如何将 tags$style 属性作为 @K 合并到我的 R 代码中。罗德建议确保图例项是圆圈。在我的代码中,图例出现了正方形。这么近!

谁能帮我插入这段代码使图例元素成为圆圈?

library(leaflet)
library(dplyr)

#create data
Points<-data.frame(x=runif(10,20,21), y=runif(10,0,1),
var=c(rep(c(10,20, 40),3), 20))
Points <- Points %>%
mutate(Category = case_when(var == 10 ~ "A",
var == 20 ~ "B",
TRUE ~ "C"),
color = case_when(Category == "A" ~ "blue",
Category == "B" ~ "blue",
TRUE ~ "red"))


map = leaflet() %>%
addTiles()

addLegendCustom <- function(map, colors, labels, sizes, opacity = 0.5){
colorAdditions <- paste0(colors, "; width:", sizes, "px; height:", sizes, "px")
labelAdditions <- paste0("<div style='display: inline-block;height: ",
sizes, "px;margin-top: 4px;line-height: ", sizes, "px;'>",
labels, "</div>")

return(addLegend(map, colors = colorAdditions,
labels = labelAdditions, opacity = opacity))
}


map %>%
addCircleMarkers(Points$x,Points$y,radius=Points$var,
color = Points$color,
stroke = FALSE, fillOpacity = 0.5) %>%
addLegendCustom(colors = c("blue", "blue", "red"),
labels = c("A", "B", "C"), sizes = c(10, 20, 40))

在图例中我更喜欢圆形标记...而不是下面的正方形!

enter image description here

最佳答案

从原始答案中,您省略了一组负责圆形的全局样式定义。

border-radius: 50%; 添加到 colorAdditions CSS 样式集,这是您需要的一种样式。

这将使:

  colorAdditions <- paste0(colors, "; border-radius: 50%; width:", sizes, "px; height:", sizes, "px")

有点hacky,但有效。

关于javascript - R 中带有 addCircleMarkers 的传单 map 图例中的圆圈 - 没有 Shiny ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58505589/

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