在 ggplot 直方图上显示带有观察总数百分比的工具提示?

Display a tooltip with percent of total number of observations on ggplot histogram?

我有一个直方图,我希望工具提示能够显示该 bin 中观测值的百分比。

这是一个简单的(可重现的)直方图:

library(tidyverse)
library(ggplot2)
library(plotly)
 
hist <- iris %>%
  ggplot(aes(x = Sepal.Length)) +
  geom_histogram(bins = 20)
 
hist %>%
  ggplotly(
    # This gives hoverover the count and the variable, but I'd like it
    # to also have the percent of total observations contained in that bin
    tooltip=c("count", "Sepal.Length")
  )

除了“计数”和“Sepal.Length”,我还想在工具提示中显示观察总数的百分比。

例如,最左边的 bin(包含 4 个观察值)的值应为 2.7% (4/150)

我会尝试在 ggplot 中使用 text 参数并将计数除以所有计数的总和。使用 sprintf 您可以获得所需的格式。在您的 tooltip 引用中 text.

library(tidyverse)
library(ggplot2)
library(plotly)

hist <- iris %>%
  ggplot(aes(x = Sepal.Length, 
             text = sprintf("Percent: %0.1f", ..count../sum(..count..) * 100))) +
  geom_histogram(bins = 20)

hist %>%
  ggplotly(
    tooltip=c("count", "text", "Sepal.Length")
  )