您可以通过以下方式访问工具提示文本:
ply$x$data[[1]]$text
因此,下面的代码可能会有用:
library(ggplot2)
pl = ggplot(dplyr::tibble(x=c(0,5,10),y=c(0,0.5,0.75)), aes(x=x,y=y)) +
geom_point() +
scale_y_continuous(limits=c(0,1), labels=scales::percent)
ply = plotly::ggplotly(pl)
tip = ply$x$data[[1]]$text
tip = do.call('c', lapply(strsplit(tip, 'y:'), function(x){paste0(x[1], 'y:',paste0(x[2], '%'))} ))
ply$x$data[[1]]$text = tip
编辑 - 把它放进一个函数里
prc_ggplotly = function(pl = ggplot2::last_plot(), i = 1)
{
ply = plotly::ggplotly(pl)
if(any(grepl('%', ply$x$layout$yaxis$ticktext)))
{
tip = ply$x$data[[i]]$text
tip = do.call('c', lapply(strsplit(tip, 'y:'), function(x) {paste0(x[1], 'y:',paste0(x[2], '%'))} ))
ply$x$data[[i]]$text = tip
}
if(any(grepl('%', ply$x$layout$xaxis$ticktext)))
{
tip = ply$x$data[[i]]$text
tip = do.call('c', lapply(strsplit(tip, '<'), function(x) { paste0(paste0(x[1], '%'), '<', x[2])} ))
ply$x$data[[i]]$text = tip
}
return(ply)
}
希望这能帮到你。