显示geom_bin直方图中的下限和上限(ggplot2)

时间:2018-02-09 15:41:38

标签: r ggplot2 histogram plotly ggplotly

在下面的直方图中,如何在ggplotly中将每个bin 的下限和上限包含在工具提示文本中?

library(ggplot2)
library(plotly)
csub<-data.frame(Anomaly10y = rpois(50,5))
p <-  ggplot(csub,aes(x=Anomaly10y)) + 
  stat_bin(binwidth=1, aes(label1 = min(Anomaly10y, na.rm = T), label2 = 
  max(Anomaly10y, na.rm = T))) 
ggplotly(p, tooltip = c("label1", "label2"))

提前致谢

1 个答案:

答案 0 :(得分:1)

也许有更好的解决方案,但你可以使用geom_bar()来欺骗它,以获得你想要的东西。这是另一种选择:

#first extract the data from stat_bin
p <-  ggplot(csub,aes(x=Anomaly10y)) + stat_bin(binwidth=1) 

temp <- layer_data(p, 1)
#ggplot
pp <- ggplot(data = temp, aes(x =x,y=y, label1 = xmin, label2 = xmax)) + 
geom_bar(stat = 'identity', fill = "darkgrey", width = 1)

然后用ggplotly绘图:

ggplotly(pp)

ggplotly(pp, tooltip = c("label1", "label2"))

也许有人作为这个选项的解决方案,但是:

pp <-  ggplot(csub,aes(x=Anomaly10y)) + 
    stat_bin(binwidth=1)  + 
stat_bin(binwidth=1, geom="text", aes(label=..xmin..), vjust = 2)  + 
stat_bin(binwidth=1, geom="text", aes(label=..xmax..)) 
ggplotly(pp)

我只得到一个标签,而不是两者。