2017-02-16 2 views
0

ggplot2를 익히고 두 번째 코드 세트가 오류를 생성하는 이유를 이해하지 못합니다. 필자가해야 할 일은 세 번째 코드 세트에서 stat_smooth 명령에 미학을 추가하는 것이었지만 괜찮 았지만 왜 그 이유는 모르겠다.ggplot2의 로지스틱 회귀 모델

ggplot(df, aes(x=wave.height, y=ship.deploy)) + geom_point() + 
    stat_smooth(method="glm", method.args=list(family="binomial"), se=FALSE) 


    ggplot(data = df) + 
    geom_point(mapping = aes(x = wave.height, y = ship.deploy)) + 
    stat_smooth(method = "glm", method.args = list(family = "binomial"), se = FALSE) 
    Error: stat_smooth requires the following missing aesthetics: x, y 


    ggplot(data = df) + 
    geom_point(mapping = aes(x = wave.height, y = ship.deploy)) + 
    stat_smooth(mapping = aes(x = wave.height, y = ship.deploy),method = "glm", method.args = list(family = "binomial"), se = FALSE) 
+0

나는 통계와 관련이 없기 때문에 질문을 마무리하기 위해 투표했습니다. – SmallChess

+0

첫 번째 예제에서는'x'와'y'를'ggplot'에 전역 적으로 매핑합니다. 이러한 글로벌 미학은 나머지 레이어로 전달됩니다. 두 번째 예제에서는 전역 미학을 사용하지 않고'geom_point' 레이어에서만'x'와'y'를 매핑합니다. 이것들은 다른 레이어에 전달되지 않기 때문에'stat_smooth'는'x'와'y' 미학을 사용하지 않으며 에러가납니다. – aosmith

답변

0

최상위 수준 인 ggplot(aes())에 지정된 미적인 매핑 만 후속 레이어에 상속됩니다. 단일 레이어에 지정된 미학은 geom_point(aes()) 만 해당 레이어에만 적용됩니다.

동일한 매핑을 다시 지정하지 않으려면 첫 번째 코드에서와 같이 맨 위에 놓습니다.

+0

그 말이 이해가 돼요, 고맙습니다. – Jeff