2016-08-24 4 views
0

Я недавно начал использовать ggplot2, поэтому я еще раз извиняюсь за отправку основного вопроса.ggplot2 graph and overriding

Я прочитал об этом коде на одной из страниц справки. Этот код прекрасно строит линейный график и среднее с красной точкой:

ggplot(mpg, aes(trans, cty)) + 
    geom_point() + 
    stat_summary(geom = "point", fun.y = "mean", colour = "red", size = 4) 

Я думал об упрощении этого немного, опрокинув содержимое geom_point() и используя stat="summary"

ggplot(mpg, aes(trans, cty)) + 
    geom_point(stat = "summary", fun.y = "mean", colour = "red", size = 4) + 

Однако приведенный выше код Безразлично» т работы. Может кто-то, пожалуйста, помогите мне, почему код выше не работает? В частности, он отображает только красную точку (средняя точка). Я не вижу, хотя я разброса использовал geom_point()

ответ

3

Поскольку ggplot() определяет aes(), но вы перекрывая их, используя geom слой.

В первом случае geom_point() завершает построение точек, а stat_summary() выполнил часть добавления статистики статистики на ваш график.

Но, когда вы определяете stat = "summary", вы указываете geom_point() для построения сводной статистики вместо точек данных.

Зайдем документации ggplot2 и читать, как отображение работает в этой экосистеме: http://docs.ggplot2.org/current/

+0

спасибо р ±. Это помогло. Я добавил geom_point(), и он работал хорошо! Огромное спасибо. – watchtower

+0

@ ss0208535 Рад, что я мог бы помочь! :) Если ответ вам помог, можете ли вы принять его? –