Вопрос по ggplot2, r – Аннотация над барами:

10

уклоненный барный заговор в ggplot снова поставил меня в тупик. Я спросил об аннотировании текста над барами здесь несколько недель назад (ССЫЛКА НА САЙТ) и получил потрясающий ответ на использование+ stat_bin(geom="text", aes(label=..count.., vjust=-1)), Я рассчитывал, поскольку у меня уже есть счет, который я просто предоставлю им.. до и после, и я сказалstat_bin чтоposition былоdodge, Он выравнивает их по центру группы и настраивает вверх и вниз. Вероятно, что-то незначительное. Пожалуйста, помогите мне получить текст над решеткой.

enter image description here

mtcars2 <- data.frame(type=factor(mtcars$cyl), 
    group=factor(mtcars$gear))
library(plyr); library(ggplot)
dat <- rbind(ddply(mtcars2,.(type,group), summarise,
    count = length(group)),c(8,4,NA))

p2 <- ggplot(dat,aes(x = type,y = count,fill = group)) + 
    geom_bar(colour = "black",position = "dodge",stat = "identity") +
    stat_bin(geom="text", aes(position='dodge', label=count, vjust=-.6)) 
Это работает, но Мариуса немного легче понять. +1 Tyler Rinker
Посмотрите на этоlink. MYaseen208

Ваш Ответ

2   ответа
12

У меня были проблемы с выравниванием уклонов позиции, поэтому я в итоге создал объект position_dodge (это правильная терминология?), Сохранил его в переменной, а затем использовал его в качестве позиции для обоих геомов.Somewhat infuriatingly, they still seem to be a little off centre.

dodgewidth <- position_dodge(width=0.9)
ggplot(dat,aes(x = type,y = count, fill = group)) + 
  geom_bar(colour = "black", position = dodgewidth ,stat = "identity") +
  stat_bin(geom="text", position= dodgewidth, aes(x=type, label=count), vjust=-1)

enter image description here

Error: User Rate Limit Exceededdodgewidth <- position_dodge(width=0.9) Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstat_binError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Tyler Rinker
Error: User Rate Limit Exceededgeom_textError: User Rate Limit Exceededstat_binError: User Rate Limit Exceededstat_binError: User Rate Limit Exceededgeom_textError: User Rate Limit Exceeded
9

Updated geom_bar() потребностиstat = "identity"

Я думаю, что это делает то, что вы хотите.

mtcars2 <- data.frame(type = factor(mtcars$cyl), group = factor(mtcars$gear))
library(plyr); library(ggplot2)
dat <- rbind(ddply(mtcars2, .(type, group), summarise, count = length(group)), c(8, 4, NA))

p2 <- ggplot(dat, aes(x = type,y = count,fill = group)) + 
  geom_bar(stat = "identity", colour = "black",position = "dodge", width = 0.8) +
  ylim(0, 14) +
  geom_text(aes(label = count, x = type, y = count), position = position_dodge(width = 0.8), vjust = -0.6)
p2

enter image description here

Похожие вопросы