繁体   English   中英

替换ggplotly()图中的映射文本而不破坏图

[英]Replace the mapping text in ggplotly() plot without breaking the plot

我正在下面使用ggplot创建堆积的条形图,并使用ggplotly()将其转换为交互式ggplotly() 正如您在下面的屏幕快照中所看到的,当我将鼠标悬停在一个栏上时,弹出文本显示为“名称”,在这种情况下,相对栏的正确“名称”为DCH。 我尝试用自己选择的名称替换它,但随后整个图表崩溃了。 因此,基本上我想知道是否可以在后台使用“名称”来显示图表,但改为显示另一个名称。 所有5个小节都相同。

与之相关的代码块是:

    geom_col(mapping = aes(x = Name, y = count, fill = Class), width = rep(0.9,5),
             color = "black", position = position_fill(reverse = T)) +
    geom_text(size = 4, position = position_fill(reverse = T, vjust = 0.50), color = "black", 
              mapping = aes(x = Name, y = count, group = Class, label = round(count))) +

在此处输入图片说明

#DATA
Name<-c("DCH","DCH","DCH","DGI","DGI","DGI","LDP","LDP","LDP","RH","RH","RH","TC","TC","TC")
Class<-c("Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap")
count<-c(2077,1642,460,1971,5708,566,2316,810,221,2124,3601,413,2160,1097,377)
FinalDF<-data.frame(Name, Class,count)




#PLOT


ggplotly(ggplot(data = FinalDF) +
    geom_col(mapping = aes(x = Name, y = count, fill = Class), width = rep(0.9,5),
             color = "black", position = position_fill(reverse = T)) +
    geom_text(size = 4, position = position_fill(reverse = T, vjust = 0.50), color = "black", 
              mapping = aes(x = Name, y = count, group = Class, label = round(count))) +
    annotate('text', size = 5, x = (5+1)/2, y = -0.1, label = c('A'), angle = 90) +
    coord_flip() +
    scale_fill_manual(values = c('lemonchiffon', 'palegreen3', 'deepskyblue2'),breaks=c("Class1", "Overlap", "Class2"), labels = c(paste("Unique to","DB"), "Overlap", "Unique to Comparison Dataset "),
                      guide = guide_legend(label.position = 'left', label.hjust = 0, label.vjust = 0.5)) )

tooltip参数可能是正确的方向。

  library(sf)
  library(plotly)
  # Create the stacked bar plot using ggplot()
  stackedBarPlot<- ggplot(data = FinalDF) +
    geom_col(mapping = aes(x = Name, y = count, fill = Class), width = rep(0.9,5),
             color = "black", position = position_fill(reverse = T)) +
    geom_text(size = 4, position = position_fill(reverse = T, vjust = 0.50), color = "black", 
              mapping = aes(x = Name, y = count, group = Class, label = round(count))) +
    annotate('text', size = 5, x = (5+1)/2, y = -0.1, label = c('A'), angle = 90) +
    coord_flip() +
    scale_fill_manual(values = c('lemonchiffon', 'palegreen3', 'deepskyblue2'),breaks=c("Class1", "Overlap", "Class2"), labels = c(paste("Unique to","DB"), "Overlap", "Unique to Comparison Dataset "),
                      guide = guide_legend(label.position = 'left', label.hjust = 0, label.vjust = 0.5))+
    geom_sf(aes(fill=Class,text=paste(Name,"DB")))

  stackedBarPlot%>%
    ggplotly(tooltip = "text")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM