2016-08-18 7 views
0

更新: 私は3つの要因の傾きに基づいて、グループ間に線を描きたいと思う次のデータを持っています。 "、" III ")。"いくつかの要因"の勾配に基づいてggplotの線の色を変更する

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() 

これ: - "III" および "II" - "III" を私は次のことを試みたが、私は "I" を結ぶ線の色を変更接続するために管理することができない

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)) 

Changing line color in ggplot based on slope

私は私の問題を説明することができたと思う。

+0

出力が不明です。あなたが最後に探しているものの例を投稿してください。また、オブジェクト 'GM'が定義されていないため、エラーが表示されません。 –

+0

@PierreLafortuneに 'slope'も追加されていません。 – amrrs

+1

@amrrs 'slope'は' mutate'式に作成されていると思います。 –

答えて

1

我々は、データを離れて分割し、あなたが望む結果を得ることができます。

#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

dat内のデータがtによって並べ替え、私は傾斜を計算するのにdiffを使用してきたので。

+0

@boucyball 多くのご協力ありがとうございます。私の実際の問題は少し複雑です。私は親切に次のリンクをご覧ください: http://stackoverflow.com/questions/39036198/group-factorial-data-with-multiple-factors-error-incompatible-size-0-expe 多くのお礼 – Rui

+0

私はそれをしましたが、私はここに新しいので...公に表示されたポストスコアを変更しません – Rui

関連する問題