Не уверен, что это именно то, что вам нужно, но сумма (y) будет одинаковой для всех баров.
library(ggplot2)
library(data.table)
set.seed(13434)
k <- runif(1000)
k <- k[order(k)]
y <- c(rbinom(n = 500, size = 1, prob = .05), rbinom(n = 500, size = 1, prob = .95))
w <- data.table(k, y)
constant_value <- sum(w$y)
ggplot(w, aes(k)) + geom_histogram(aes(y = stat(constant_value/count)))
дает точно такой же график, как и
ggplot(w, aes(k)) + geom_histogram(aes(y = stat(sum(w$y)/count)))
Редактировать:
Не уверен, поможет ли это вам, здесь я использую ту же самую ширину бина (30), что и для ggplot2s по умолчанию:
library(tidyverse)
w %>%
arrange(k) %>%
mutate(bin = cut_interval(1:length(k), length=30, labels=FALSE)) %>%
group_by(bin) %>%
summarise(mean_y = mean(y),
mean_k = mean(k),
width = max(k) - min(k)) %>%
ggplot(aes(mean_k, mean_y, width=width)) +
geom_bar(stat="identity") +
labs(x="k", y="mean y")
, что делает этот показатель: