Я пытаюсь создать гистограмму частоты в ggplot 2, используя geom_histogram
, но эта команда возвращает только количество наблюдений, а не частоту в процентах. Я также хотел бы, чтобы процентные значения были поверх столбцов.
Мне кажется странным, что в ggplot нет команды frequency=TRUE
из родной команды hist
r-base.
Есть ли простой способ сделать это в ggplot? Я знаю, что hist
сделает это, но ggplot позволит мне делать с этими графиками другие вещи.
я пытаюсь
df<-data.frame(corr=runif (100, min = -1, max = 1))
#View(df)
ggplot(data=df, aes(x=corr))+
geom_histogram(color = "darkblue", fill = "lightblue")
В качестве альтернативы я попробовал следующую команду на основе этого ответа Показывать процент % вместо количества в диаграммах категориальных переменных, но мне кажется, что используемые версии устарели и плохо реагируют на R 4.1.1.
ggplot(data=df, aes(x=corr))+
geom_bar(aes(y = (((..count..)/sum(..count..))*100)))
scale_y_continuous(labels = percent))
Это не плотность, это частота
Отвечает ли это на ваш вопрос? Показывать процент % вместо количества в диаграммах категориальных переменных
@ benson23, этот ответ устарел, и я не могу его воспроизвести. Я использую версию R 4.1.1
Вы можете использовать этот код:
library(tidyverse)
library(scales)
df<-data.frame(corr=runif (100, min = -1, max = 1))
ggplot(df, aes(x = corr)) +
geom_histogram(fill = "blue", col = "black")+
scale_y_continuous(breaks = seq(0,10,1),labels = paste(seq(0, 10, by = 1), "%", sep = ""))+
geom_text(aes(y = (..count..),label = scales::percent((..count..)/sum(..count..))), stat = "bin",colour = "red",vjust=-1, size = 3) +
ylab("Percentage")
Выход:
как добавить процентные значения над полосами? count
сколько раз интервал повторяется?
@ wesleysc352, я изменил код. Это то, что вы имеете в виду?
Для плотности
geom_histogram(aes(y=..density..), etc)
— это дубликат.