2014-02-17 3 views
1

я стараюсь отмечать свои графики со средней спецификой каждого графика:ggplot2 - аннотация средства в несколько графе

ggplot(diamonds, aes(x = carat, fill=cut)) + 
stat_density(aes(ymax = ..density.., ymin = -..density..), 
    geom = "ribbon", position = "identity") + 
    facet_grid(. ~ cut) + 
    xlim(0,2.5) + 
    geom_text(data = NULL, x = 0.6, y = 0, label = mean(carat), size=5) + 
    coord_flip() 

Например, здесь я хотел бы график «Ярмарка» отображается среднее «Fair », то в« Хорошем »отображается среднее значение« Хорошее »и т. д.

Кроме того, но это дополнительный параметр, я хотел бы быть расположен относительно x, если среднее значение равно 1.0, тогда как среднее значение отображается при x = 1,0

ответ

1

Существует множество способов получить метки (и позиции для l Абелс). Здесь пакет dplyr используется для суммирования кадра данных diamonds; то есть для получения необходимых средств. Также обратите внимание, что метки отформатированы - два десятичных знака. В приведенном ниже коде рамка данных diamonds2 содержит средства и метки и используется при вызове geom_text.

library(ggplot2) 
library(dplyr) 

diamonds2 = transform(summarise(group_by(diamonds, cut), label = mean(carat)), 
    Label = sprintf("%.02f", label)) 

ggplot(diamonds, aes(x = carat, fill=cut)) + 
stat_density(aes(ymax = ..density.., ymin = -..density..), 
    geom = "ribbon", position = "identity") + 
facet_grid(. ~ cut) + 
xlim(0, 2.5) + 
geom_text(data = diamonds2, aes(label = Label, x = label, y = 0), size=5) + 
coord_flip() 

enter image description here

+0

'Предупреждение в install.packages: пакет 'dplyr' не доступен (для R версии 2.15.1)' и я не могу изменить версию R студии (онлайн службы сервера) – Muramasa

+1

Попробуйте 'ddply' из пакета plyr:' library (plyr); diamonds2 = transform (ddply (diamonds,. (cut), summary, label = mean (carat)), Label = sprintf ("%. 02f", label)) 'В противном случае посмотрите на'? aggregate' или '? by'. 2.15.1. Это почти 2 года. –

+0

Я следую вашей рекомендации, но если я построю этот график, можно увидеть разницу в значении в 'geom_text' et в среднем в' geom_boxplot', что я не знаю, как это объяснить ... http://snag.gy/xtbSs.jpg – Muramasa