#r #ggplot2
Вопрос:
Ниже приведен мой код для создания горизонтальной гистограммы. Проценты не в порядке. Я хотел бы получить процент от 0 до 100%.
df %>%
dplyr::group_by(Site_name) %>%
dplyr::summarise(n = sum(Race %in% "Missing"), perc = paste0(round(n/n()*100),"%")) %>%
ggplot(aes(Site_name, perc)) geom_col(position = 'dodge', fill = "#0000FF", stat="identity")
coord_flip() geom_text(aes(label=perc), vjust=0, color="black",
position = position_dodge(0.9), size=3.5)
Созданный график приведен ниже. Но я хочу, чтобы процентная ось увеличивалась в порядке возрастания от 0 до 100.
Комментарии:
1. дополните текст с
vjust
иhjust
вgeom_text
.2.
perc
это строка фактора в вашем наборе данных, а не число. Я бы предложил указать значение в виде числа/целого числа, а затем построить его.3. @maarvd Хорошо понял. Но как мне это сделать в рамках этого кода?
4.
perc = paste0(round(n/n()*100),"%"))
чтобыperc = round(n/n()*100)
?
Ответ №1:
Я думаю, вы ищете dplyr::arrange
. Документация здесь
df %>%
dplyr::group_by(Site_name) %>%
dplyr::summarise(n = sum(Race %in% "Missing"), perc = round(n/n()*100)) %>%
dplyr::arrange(perc) %>%
ggplot(aes(Site_name, perc))
geom_col(position = 'dodge', fill = "#0000FF", stat="identity")
coord_flip()
geom_text(
aes(label=perc),
vjust=0,
color="black",
position = position_dodge(0.9),
size=3.5
)
Комментарии:
1. Да, это то, что я искал. Вместо этого я использовал «as.numeric(sub(«%», «», df1$perc)»