我正在使用R中的Plotly创建一个交互式 map (形状). map 显示不同部门的#频率.但是,将鼠标悬停在多边形中心时,不会显示包含部门信息的工具提示.仅当鼠标悬停在多边形的边上时,才会显示工具提示.

我试过使用工具提示#配置中的层和位置属性,但工具提示仍然不一致地显示在多边形的中心#中.

我非常感激任何建议或解决方案,使工具提示显示在#多边形的中心时,悬停在 map 上.

maa = read_sf("map.shp")

map = map %>% mutate(across(c("Frecuency", "Im", "Fo", "April", "July"),
    ~ifelse(is.na(.), 0, .)))

g_map = map %>%
    ggplot(aes(fill = Frecuency, text = paste("Dp: ", NAME, "",
    "Frecuency: ", Frecuency, "","I: ", Im, "
    ",
    "F: ", Fo, "
    ",
    "Abril: ", April, "
    ",
    "Julio: ", July))) +
    geom_sf() +
    scale_fill_gradient(low = "white", high = "darkblue") +
    labs(fill = "Scale", title = "Title") +
    theme_minimal() +
    theme_void()+
    theme(axis.line = element_blank())

# Convert to plotly
g_mapa_int = ggplotly(g_map, tooltip = "text")%>%
    config(displayModeBar = FALSE) %>%
    config(showLink = FALSE)

# Print
g_mapa_int

我非常感谢任何建议或解决方案,使工具提示显示在中心的多边形时,悬停在 map 上.

推荐答案

你的问题不可重复.所以我使用了北卡罗来纳州的数据,这些数据来自sf个数据包.

使用UDF构建出图后,可以更改hoveron参数.

以下是如何处理NC数据的示例.我判断了每个跟踪并更改了hoveron参数.如果为同一县捕获了多个工具提示,我只使用第一个.

library(tidyverse)
library(plotly)
library(sf)

nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)

# built to somewhat replicate the conditions of the plot in your question
g <- ggplot(nc, aes(fill = AREA, text = paste0("Name: ", NAME, "Area: ", AREA))) +
  geom_sf() + scale_fill_gradient(low = "white", high = "darkblue") +
  labs(fill = "Scale", title = "Title") +
  theme_void()

fixer <- function(gp) {
  lapply(1:length(gp$x$data), \(m) {
    gp$x$data[[m]]$hoveron <<- "fills"               # hover on the fill, not line
    if(length(gp$x$data[[m]]$text > 1)) {
      gp$x$data[[m]]$text <<- gp$x$data[[m]]$text[1] # only one tooltip per county
    }
  })
  gp
}

ggplotly(g, tooltip = "text") %>% fixer() # call the UDF to change tooltips

R相关问答推荐

通过绘图 Select 线串几何体并为其着色

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

保存包含循环和ifelse的函数的输出

terra nearest()仅为所有`to_id`列返回NA

有没有一种方法可以从函数中创建一个值的列表,然后将这些值变成R中的直方图?我一直觉得不行

一小时满足条件的日期的 Select

将饼图插入条形图

R:从geom_ol()中删除轮廓并导出为pdf

展开对数比例绘图的轴(添加填充)

条形图顶部与其错误条形图不对齐

将摘要图添加到facet_WRAP gglot的末尾

变长向量的矢量化和

计算使一组输入值最小化的a、b和c的值

为什么函数toTitleCase不能处理english(1),而toupper可以?

将数据从一列转换为按组累计计数的单个虚拟变量

以R表示的NaN值的IS.NA状态

R中从因数到数字的转换

将y轴格式更改为R中的百分比

根据向量对列表元素进行排序

基于已有ID列创建唯一ID