Моя цель - создать два перекрывающихся PMF биномиального распределения, используя ggplot2, с цветовой кодировкой в соответствии с указанными цветами, с легендой внизу.
Пока что, я думаю, я настроилкадр данных справа.
successes <- c(seq(0,10,1),seq(0,10,1))
freq <- c(dbinom(seq(0,10,1),10,0.2),dbinom(seq(0,10,1),10,0.8))
class <- c(rep(' A ',11),rep(' B ',11))
df1 <- data.frame(cbind(successes,freq,class))
Однако это дает неверный результат.
library(ggplot2)
g <- ggplot(df1, aes(successes),y=freq)
g + geom_bar(aes(fill = class))
Мне кажется, что я следую примеру, но получаю совершенно другой результат.Это (почти) делает то, что я хочу: было бы точно, если бы он дал относительные частоты.
g <- ggplot(mpg, aes(class))
g + geom_bar(aes(fill = drv))
Пара вопросов:
1) Где я ошибаюсь в своем блокекод?
2) Есть ли лучший способ показать PMF на одном графике?Я не намерен использовать гистограмму или гистограмму.
3) Как я могу настроить это, чтобы дать мне возможность выбирать цвета?
4) Как заказатьзначения по оси х?Они не категории.Это числа от 0 до 10, и они имеют естественный порядок, который я хочу сохранить.
Спасибо!
ОБНОВЛЕНИЕ
Сработали следующие два блока.
successes <- c(seq(0,10,1),seq(0,10,1))
freq <- c(dbinom(seq(0,10,1),10,0.2),dbinom(seq(0,10,1),10,0.8))
class <- c(rep(' A ',11),rep(' B ',11))
df1 <- data.frame(successes,freq,class)
ggplot(df1, aes(successes ,y=freq, fill = class)) +
geom_bar(stat = "identity") +
scale_x_continuous(breaks = seq(0,10,1)) +
scale_fill_manual(values = c("blue", "green")) + theme_bw()
И
successes <- c(seq(0,10,1),seq(0,10,1))
freq <- c(dbinom(seq(0,10,1),10,0.2),dbinom(seq(0,10,1),10,0.8))
class <- c(rep(' A ',11),rep(' B ',11))
df1 <- data.frame(successes,freq,class)
ggplot(df1, aes(x=successes,y=freq),y=freq) +
geom_col(aes(fill = class)) +
scale_x_continuous(breaks = seq(0,10,1)) +
scale_fill_manual(values = c("blue", "green")) + theme_bw()