2016-08-18 6 views
0

업데이트 : 3 가지 요소의 기울기를 기반으로 그룹간에 선을 그릴 다음 데이터가 있습니다. ("I", "II ","III ")."여러 요인"기울기를 기반으로 ggplot의 선 색상을 변경하십시오.

set.seed(205) 
dat = data.frame(t=rep(c("I","II","III"), each=10), 
      pairs=rep(1:10,3), 
      value=rnorm(30), 
      group=rep(c("A","B"), 15)) 

나는 다음 시도했다, 그러나 나는 "I"연결 라인의 색상 변경 연결을 관리 할 수 ​​없습니다 - "III"와 "II"- "III"를 :

ggplot(dat %>% group_by(pairs) %>% 
    mutate(slope = (value[t=="II"] - value[t=="I"])/(value[t=="II"])- value[t=="I"]), 
    aes(t, value, group=pairs, linetype=group, colour=slope > 0)) + 
geom_point() + 
geom_line() 

이를 Changing line color in ggplot based on slope

나는 내 문제를 설명 할 수 있었으면 좋겠다.

+0

원하는 출력이 불분명합니다. 결국 당신이 찾고있는 것을 게시하십시오. 또한, 우리는'GM' 객체를 정의 할 필요가 없으며 여러분이 얻고있는 오류를 볼 수 없습니다. –

+0

@PierreLafortune에 'slope'도 추가 할 수 없습니다. – amrrs

+1

@amrrs'slope'는'mutate' 표현식에서 생성 된 것 같습니다. –

답변

1

우리는 데이터를 갈라, 당신이 원하는 것을 얻을 수 있습니다 dat의 데이터가 t으로 분류되어왔다

#calculate slopes for I and II 
dat %>% 
    filter(t != "III") %>% 
    group_by(pairs) %>% 
    # use diff to calculate slope 
    mutate(slope = diff(value)) -> dat12 

#calculate slopes for II and III 
dat %>% 
    filter(t != "I") %>% 
    group_by(pairs) %>% 
    # use diff to calculate slope 
    mutate(slope = diff(value)) -> dat23 

ggplot()+ 
    geom_line(data = dat12, aes(x = t, y = value, group = pairs, colour = slope > 0, 
           linetype = group))+ 
    geom_line(data = dat23, aes(x = t, y = value, group = pairs, colour = slope > 0, 
           linetype = group))+ 
    theme_bw() 

enter image description here

때문에, 나는 기울기를 계산하는 diff을 사용했다.

+0

@boucyball 많은 도움을 주셔서 감사합니다. 그러나 내 실제 문제는 좀 더 복잡합니다. 친절하게도 다음 링크를 참조하도록 요청할 수 있습니다. http://stackoverflow.com/questions/39036198/group-factorial-data-with-multiple-factors-error-incompatible-size-0-expe 많은 감사 – Rui

+0

나는 그것을 끝내었지만, 내가 여기에서 새롭기 때문에 ... 공개적으로 표시된 점수를 변경하지는 않는다. – Rui

관련 문제