我希望 ggplotly 工具提示只显示悬停时的数字

时间:2021-05-28 11:39:20

标签: r ggplot2 plotly

我有以下图表:

g <- ggplot(data1) +
        theme_bw()+
        theme(panel.grid = element_blank(), 
         #axis.text.x = element_text(vjust = 0.5),
         axis.text.y = element_blank(),
         axis.ticks.x = element_blank(),
         axis.ticks.y = element_blank(),
         axis.line.x = element_line(),
         axis.title.x =       element_blank(),
         axis.title.y =       element_blank(),
         panel.border =element_blank(),
         legend.position = "none") +

                geom_rect(aes(xmin = as.integer(Category) - w/2,xmax = as.integer(Category) + w/2, ymin = ymin, ymax = ymax,fill = Impact, Revnue = valuelabel),    
                    colour = "black") +
                    scale_x_discrete(limits = levels) +
                    scale_fill_manual(values = (c("Decrease" = "red", "Increase" = "green", "Total" = "black")))

g <- g +
    geom_segment(data = data1[1:(nrow(data1) -1),],aes(x = xmin,
                                                       xend = xmax,
                                                       y = ymin,
                                                       yend = ymin)) +
         coord_cartesian(xlim= c(min(as.integer(data1$Category)), max(as.integer(data1$Category))),ylim=c(max(data1$ymin)*0.9, max(c(data1$ymin*1.03,data1$ymax*1.03))))


yrevenuecords <- if (data1$Impact == "Decrease"){min(data1$ymin,data1$ymax)} else {max(data1$ymin,data1$ymax)}

    g <- g + geom_text(aes(x = as.integer(Category),
                           y = ifelse(Impact=="Decrease",ymin*0.99,ymin*1.01), label = css(valuelabel), PriorMonth = revpriormonth), colour = "black")
    
    g <- g + geom_text(aes(x = as.integer(Category),
                           y = max(c(ymin*1.02,ymax*1.02)), label = css(arpu)), colour = "black")
                           
    g <- g + geom_text(aes(x = as.integer(Category),
                           y = max(c(ymin*1.03,ymax*1.03)), label = css(lines)), colour = "black")                     
    
    g <- ggplotly(g, tooltip = c("PriorMonth") )

生成的工具提示如下所示:

revpriormonth: 5

有没有办法只提取数字而不提取文本?我希望我的工具提示只显示 5,而之前没有 revpriormonth

感谢您的意见!

1 个答案:

答案 0 :(得分:0)

看来您要使用的是 text 作为 geom_text 中的美学。

因此尝试在 text = revpriormonth 中添加 geom_text(aes()),然后将 tooltip 更改为 tooltip = c("text")

相关问题