r语言 - 如何在 ggplotly 直方图中显示区间而不是中间点?



当我使用 ggplotly() 将 ggplot 直方图转换为动态图时,我假设悬停会带来区间的中点。这对我的公众来说并不直观。我需要它来显示间隔。例如:[x,y)或类似的东西。我该怎么做?

下面是一个包含鸢尾花数据集的简单示例。

library(tidyverse)
library(plotly)
iris %>% 
ggplot(
aes(
x = Sepal.Length
)
) +
geom_histogram() -> p 

ggplotly(p)

也许还有一件事:当我创建 ggplot2 直方图时,我知道我可以控制箱的数量和箱的大小。有没有办法进行更多的控制,也许将所有内容都设置为手动?

提前感谢,对不起英语不好!

您可以尝试事先计算binwidthbw。我为此借用了这里的解决方案。然后计算中断hist_breaks并使用text添加间隔cut作为标签aes内的。

x <- iris$Sepal.Length
bw <- 2 * IQR(x) / length(x)^(1/3)
num_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))
hist_breaks <- c(min(x)+ 0.1 - bw/2, rep(bw, num_bins+1)) %>% cumsum()
p <- iris %>% 
mutate(label =cut(Sepal.Length, hist_breaks)) %>% 
ggplot(aes(x = Sepal.Length, text = label)) +
geom_histogram(binwidth = bw)
ggplotly(p, tooltip = c("count", "text"))

剧情

使用p + geom_vline(xintercept = hist_breaks)检查边界是否正确

相关内容

  • 没有找到相关文章

最新更新