'Set tooltip text for plot with more than one aes()

In the ggplot below Im trying to change the hover text in points and columns using ggplotly() tooltip as text but I cannot change it. Also since I use 2 text for every aes() how does the tooltip know which one I pass to it?

library(ggplot2)
library(plotly)
dt2<-structure(list(year2 = c(1950, 1955, 1960, 1965, 1970, 1975, 
1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015), pta_count = c(2, 
4, 10, 14, 24, 18, 13, 19, 84, 100, 105, 96, 47, 15), scope_ntis_mean = c(3.5, 
9.5, 5, 9.57142857142857, 4.54166666666667, 11.7222222222222, 
6.23076923076923, 7.05263157894737, 17.1071428571429, 15.16, 
15.2761904761905, 17.6354166666667, 22.9574468085106, 26.8666666666667
), scope_ntis_sd = c(0.707106781186548, 11.7046999107196, 6.25388767976457, 
8.72409824049971, 4.56812364359683, 9.2278705436976, 5.11784209333462, 
10.7779284971676, 13.2864799994027, 12.9643801053175, 12.1295056958191, 
12.7964796077233, 12.4375963125981, 14.5791762782532), scope_ntis_se = c(0.822426813475736, 
9.62625905026287, 3.25294959458435, 3.83516264302846, 1.53376734188638, 
3.57760589505535, 2.33476117415722, 4.06710846230115, 2.38450123589789, 
2.13245076374089, 1.94704374916827, 2.14823678655809, 2.98410970181292, 
6.19176713030084), scope_ntis_cil = c(2.67757318652426, -0.12625905026287, 
1.74705040541565, 5.73626592840011, 3.00789932478029, 8.14461632716687, 
3.89600805661201, 2.98552311664622, 14.722641621245, 13.0275492362591, 
13.3291467270222, 15.4871798801086, 19.9733371066977, 20.6748995363658
), scope_ntis_ciu = c(4.32242681347574, 19.1262590502629, 8.25294959458435, 
13.406591214457, 6.07543400855305, 15.2998281172776, 8.56553040492645, 
11.1197400412485, 19.4916440930407, 17.2924507637409, 17.2232342253587, 
19.7836534532248, 25.9415565103236, 33.0584337969675)), row.names = c(NA, 
-14L), class = c("tbl_df", "tbl", "data.frame"))

p<-ggplot(dt2, aes(x=year2)) + 
      
      geom_col(aes(y=pta_count/(max(dt2$pta_count)/max(dt2$scope_ntis_ciu)),
                   text = paste(
                     "Year :",
                     ~year2,
                     "<br> Count of issues :",
                     ~pta_count/(max(dt2$pta_count)/max(dt2$scope_ntis_ciu))
                   )),
               fill="darkolivegreen",alpha=0.3,width=3)+
      geom_point(aes(y=scope_ntis_mean,
                     text = paste(
                       "Year :",
                       ~year2,
                       "<br> Count of issues :",
                       ~scope_ntis_mean
                     )))+
      geom_segment(aes(x=year2,y=scope_ntis_cil,xend=year2,yend=scope_ntis_ciu
                       ),
                   arrow=arrow(length=unit(0.1,"cm"),
                               ends='both'),
                   lineend="square",size=0.3) +
      scale_x_continuous(n.breaks=14)+
      # Custom the Y scales:
      scale_y_continuous(
        
        # Features of the first axis
        name = "NTI Scope\n(scope measures the sum of all NTIs mentioned in a PTA,\ndot indicated mean scope per 5-year interval,\n arrows signal confidence intervals)",
        
        # Add a second axis and specify its features
        sec.axis = sec_axis( ~ . * max(dt2$pta_count)/max(dt2$scope_ntis_ciu), name="PTA Count\n(green columns indicate number of PTAs\n signed in given 5-year intervall)")
      )+
      labs(x='')+
      theme_bw()+theme(axis.title = element_text(size = 8),
                       axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))
    
    ggplotly(p,tooltip = "text")


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source