gpt4 book ai didi

r - 如何在ggplotly中调整悬停?

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

我有包含 2 个分类列和 1 个数字列的数据。我在 ggplot 中构建了 marikemo 图表,为了使其具有交互性,我使用了 ggplotly()。但是,当我移动光标时,悬停会显示两次相同的信息:

# create a dataset
specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
value <- abs(rnorm(12 , 0 , 15))
data <- data.frame(specie,condition,value)


library(tidyverse)
library(plotly)

plt <- data %>%
group_by(specie) %>%
mutate(value = value / sum(value)) %>%
ggplot(aes(fill=condition, y=value, x=specie)) +
geom_col(position="fill", width = 1, color = "white") +
geom_text(aes(label = scales::percent(value, accuracy = 0.1)),
position = position_fill(vjust = 0.50),
color = "white") +
scale_y_continuous(labels = scales::percent) +
scale_fill_brewer(palette = "Set1")

ggplotly(plt)

enter image description here

最佳答案

有时来自 ggplotly 的内容很奇怪。小费,当然。黑色背景?它从哪里得到的?无论哪种方式,我都使用 lapply 来确定哪些轨迹具有包含单词“scale”的 texthovertext。我选择 scale 是因为它是只出现在需要消失的工具提示中的字符串。然后我使用 any 作为“是真的吗?”和 grepl 以获得与字符串匹配的 true 或 false 响应。

plt2 <- ggplotly(plt)              # set to object to modify
invisible(lapply(1:length(plt2$x$data),
function(j) {
txt <- plt2$x$data[[j]]$text
htxt <- plt2$x$data[[j]]$hovertext
if(any(grepl("scale", txt)) | # any matches per trace
any(grepl("scale", htxt))) {
plt2$x$data[[j]]$hovertext <<- ""
plt2$x$data[[j]]$hoverinfo <<- "none"
}
}))
plt2

不再显示额外提示。

enter image description here

关于r - 如何在ggplotly中调整悬停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73460576/

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