Нарисуйте процент каждого класса по сравнению с общим количеством каждого класса в R - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в программировании R, и у меня проблема с отображением процента каждого класса по сравнению с общим счетом всех классов. Например, у меня есть данные:

dat <- data.frame(
    time = factor(c("Breakfast","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
    total_bill = c(12.75,14.89, 17.23)
)

, и я хочу рисовать, используя ggplot и geom_bar, чтобы отобразить процент следующим образом: для класса Завтрак процент составляет 12,75 / (12,75 + 14,89 + 17,23) , на обед и ужин хочу того же. Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 30 апреля 2020

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

# add a column for percent of total bill
dat$bill.perc <- (dat$total_bill/sum(dat$total_bill)) * 100

# example plot with some minimal formatting
ggplot(dat, aes(time, bill.perc)) +
    geom_col(width=0.7, aes(fill=time), show.legend = FALSE) +
    theme_bw()

enter image description here

...