2015-01-09 3 views
1

Я пытаюсь применить этот ответ к своему набору данных, но, будучи новичком, он совсем не работает для меня.Центрирование значений в R с помощью ggplot2

Вот пример набора и примеры код:

d <- data.frame(Variant = sample(c("iedere","elke"),size = 50,replace = TRUE), 
     Region = sample(c("VL","NL"),size = 50,replace = TRUE), 
     PrecededByPrep = sample(c("1","0"),size = 50,replace = TRUE), 
     Person = sample(c("person","no person"),size = 50,replace = TRUE), 
     Time = sample(c("time","no time"),size = 50,replace = TRUE)) 

    qplot(factor(Variant), data=d, geom="bar", fill=Variant) + 
     theme_bw() + 
     xlab("") + 
     ylab("Frequencies") + 
     geom_text(aes(label = factor(Variant), y = 5), size = 3) 

Это простой бар сюжет, только из двух элементов (так бар график должен показать частоту «iedere» и «Элька»). Я попытался добавить geom_text со значением, которое, как я думал, по крайней мере покажет количество вхождений, но это не сработает. Вместо этого он показывает мне метки, а не значения.

Я также хотел бы применить это к штабелированным участкам и сгруппированный штабелированный участок - как показано here. Я предполагаю, что метод одинаковый для всех трех графиков, но, видя, что я даже не могу получить первый, чтобы работать с предоставленным кодом, я не пробовал другие два. Нам будут очень признательны некоторые направления и помощь.

+0

Просто побочное замечание, вы должны стараться избегать именования объектов то же самое, существующая функция ('t' - функция транспонирования). – nrussell

+1

@nrussell Спасибо за хедз-ап. Я редактировал свой пример кода. –

+2

Ну, 'table' также является существующим именем функции. Также не нужно использовать 'png/dev.off()' для вашего примера; он просто создает один дополнительный шаг, чтобы открыть файл, чтобы посмотреть, как он выглядит. Кроме того, большинство людей предпочитают использовать 'ggsave()' при сохранении объекта 'ggplot'. – MrFlick

ответ

2

Вам понадобится создать вторичный фрейм данных для этикеток. Я также изменил структуру кода построения графиков, так как вы хотите, чтобы в конечном итоге сделать больше с ним и qplot действительно только для «быстрых» участков или тех, кто прибывает из базы черчения, которые нужно быстро отображение:

d_labs <- data.frame(table(d$Variant)) 

gg <- ggplot(d, aes(x=Variant)) 
gg <- gg + geom_bar(aes(fill=Variant)) 
gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq), y=5, size=3) 
gg <- gg + theme_bw() 
gg <- gg + labs(x=NULL, y="Frequencies") 
gg 

enter image description here

You получить способ больше управление над geom_text геометров таким образом.

EDIT

можно сопоставить вертикальное положение к Freq эстетике:

gg <- gg + geom_text(data=d_labs, aes(x=Var1, label=Freq, y=Freq/2), size=3) 

enter image description here

+0

[Следующий вопрос] (http://stackoverflow.com/questions/27874548/extend-displaying-values-of-bar-plot-to-stacked-bar). –

Смежные вопросы