1

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

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

提前致谢

4

1 回答 1

2

也许有更好的解决方案,但你可以欺骗它,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)

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

于 2018-02-09T19:28:23.867 回答