gpt4 book ai didi

r - ggplotly 中的 y 轴比例为百分比

转载 作者:行者123 更新时间:2023-12-04 12:06:48 26 4
gpt4 key购买 nike

我正在使用 scale_y_continuous 以百分比格式设置我的 y 轴:

library(ggplot2)
ggplot(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)

plotly::ggplotly()

但是,如何在 plotly 工具提示中保留这种格式(将 y 显示为 float )?

最佳答案

您可以访问工具提示文本作为

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)
}

希望对你有帮助

关于r - ggplotly 中的 y 轴比例为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264380/

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