ggplot: добавление частотного графика поверх процентного графика

#r #ggplot2 #histogram

#r #ggplot2 #гистограмма

Вопрос:

Я заинтересован в том, чтобы сделать график, показывающий процентное соотношение по группам. что-то вроде этого:

 data(iris) ggplot(iris,  aes(x = Sepal.Length, group = factor(Species), fill = factor(Species)))     geom_histogram(position = "fill") theme_bw()  

введите описание изображения здесь

однако я также хотел бы построить гистограмму, показывающую распределение частот поверх этого графика. что-то вроде сюжета ниже.

 ggplot(iris,aes(x = Sepal.Length))     geom_histogram() theme_bw()   

Кто-нибудь знает, как это сделать?

Примечание. Я знаю, как построить график частоты по группам: ggplot(iris,aes(x = Sepal.Length, group = factor(Species), fill = factor(Species))) geom_histogram() theme_bw() . Но это не то, чего я хочу. Скорее, я хотел бы получить небольшое распределение частот в нижней части процентного графика, представленного в начале.

Большое спасибо

Комментарии:

1. Вы хотите наложить обе диаграммы на один график или хотите, чтобы две отдельные диаграммы были сложены друг на друга? В последнем случае вы могли бы, например, взглянуть на patchwork .

Ответ №1:

Что-то вроде этого?

 library(gridExtra) p1 lt;- ggplot(iris,  aes(x = Sepal.Length,   group = factor(Species),   fill = factor(Species)))     geom_histogram(position = "fill")     theme_bw()    theme(legend.position = "top")  p2 lt;- ggplot(iris,aes(x = Sepal.Length,   group = factor(Species),   fill = factor(Species)))     geom_histogram()    theme_bw()    theme(legend.position = "none")  grid.arrange(p1, p2,   heights = c(4, 1.5))  

введите описание изображения здесь

Редактировать: Значит, вы ищете это? Обратите внимание, что в этом случае абсолютные значения меньшей гистограммы становятся бессмысленными, так как они были уменьшены до ~25% диапазона вертикального графика.

 ggplot()    geom_histogram(data = iris,  aes(x = Sepal.Length,  group = factor(Species),  fill = factor(Species)),  position = "fill",  alpha = 1)    geom_histogram(data = iris,  aes(x = Sepal.Length,  y = ..ncount.. / 4),  alpha = 0.5,  fill = 'black')  

введите описание изображения здесь

Комментарии:

1. Спасибо, в этом есть смысл, но я пытался найти способ, чтобы два графика перекрывались, возможно, с некоторой прозрачностью в частотном графике.