2016-04-14 3 views
3

Рассмотрите данные примера.r аннотировать значения выше геометрических баров

df <- data.frame(
    x = factor(c(1, 1, 2, 2)), 
    y = c(.1, .3, .2, .1), 
    grp = c("a", "b", "a", "b") 
) 

Теперь я создаю граф, используя ggplot и аннотировать его с помощью geom_text()

ggplot(data = df, aes(x, y, fill = grp, label = y)) + 
     geom_bar(stat = "identity", position = "dodge") + 
scale_y_continuous(limits=c(0,1)) + 
     geom_text(position = position_dodge(0.9)) 

Как указать, что все текстовые значения выравнивать горизонтальность в верхней части окна графика?

ответ

3

Вы можете указать aes(y=...) в geom_text. Так, для чисел в верхней части окна графика вы будете иметь

ggplot(data = df, aes(x, y, fill = grp, label = y)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    geom_text(aes(y=Inf), position = position_dodge(0.9)) 

И вы можете бросить в + ylim(0, 4) расширить площадь участка.


Чтобы соответствовать отредактированный вопрос:

ggplot(data = df, aes(x, y, fill = grp, label = y)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_y_continuous(limits=c(0,1)) + 
    geom_text(aes(y=0.9), position = position_dodge(0.9)) ## can specify any y=.. value 
+0

идеальный! Хотя бесконечность нежелательна, так как она пропускает половину символов, я понял из вашей информации, что могу просто использовать y = 1. Благодаря! – FlyingDutch

+0

@MvZB Да, установите 'y = anynumber', и он работает точно так же :) – SymbolixAU