#r #ggplot2 #bar-chart #stackedbarseries
#r #ggplot2 #столбчатая диаграмма #stackedbarseries
Вопрос:
Я хочу создать столбчатую диаграмму с накоплением для данных, похожих на следующие. Столбчатая диаграмма должна представлять процент пациентов по расам, посещающих каждую из клиник, а также показывать соответствующие цифры.
Может кто-нибудь, пожалуйста, помочь мне с этим, поскольку я новичок в R?
Комментарии:
1. Что вы пробовали или исследовали? `»R» столбчатая диаграмма содержит несколько хороших примеров с кодом для воспроизведения.
Ответ №1:
Попробуйте этот подход, используя ggplot2
tidyverse
функции и . Как упоминал @r2evans, пожалуйста, в следующий раз попробуйте создать воспроизводимый пример с данными. Вот код. Вам нужно будет вычислить положение для меток, а затем набросать код:
library(ggplot2)
library(dplyr)
library(tidyr)
#Code
df %>% pivot_longer(-Race) %>%
group_by(name) %>% mutate(Pos=value/sum(value)) %>%
ggplot(aes(x=name,y=value,fill=Race))
geom_bar(stat = 'identity',position = 'fill')
geom_text(aes(y=Pos,label=value),position = position_stack(0.5))
scale_y_continuous(labels = scales::percent)
Вывод:
Некоторые используемые данные:
#Data
df <- structure(list(Race = c("Caucasian/White", "African American",
"Asian", "Other"), `Clinic A` = c(374, 820, 31, 108), `Clinic B` = c(291,
311, 5, 15), `Clinic C` = c(330, 206, 6, 5), `Clinic D` = c(950,
341, 6, 13)), class = "data.frame", row.names = c(NA, -4L))
Ответ №2:
Вот ссылка из места, которое мне нравится.Наслаждайтесь.
Суть в том, что в вашем geom_bar()
случае сделайте это : geom_bar(position="fill", stat="identity")
.