2017-05-11 7 views
2

多くのGoogle検索の後、私はあなたの助けを求めることにしました。ggplot smooth aes変数をmethod.args

私はいくつかの観測を異なる時点でプロットしており、stat_smoothで線形回帰を追加したいと考えています。しかし、私は、インターセプトを100とした線形モデルが必要です(データは時間0に対する割合です)。これを行うために、私は最も簡単な方法はlmのオフセットパラメータを使用することであることがわかりました。問題は、グループごとの「y」観測数(colおよびfacetグループ)をオフセットパラメータに渡す方法です。

私はグループごとの観測値の数が同じ(私の場合は10)とのデータを使用している場合、私はちょうど数を書くことができ、それは素晴らしい作品:

myplot <- ggplot(mydt2, aes(x=Time_point, y=GFP_rel, col=Gene, fill=Gene,group=Gene)) 
myplot <- myplot + stat_smooth(method='lm', formula = y ~ x + 0, method.args=list(offset=rep(100,10))) + 
    facet_wrap(~Cell_line) 

enter image description here

しかし、これはそれほどエレガントではありません。私の質問は、どのようにしてmethod.argsに観測数を渡すことができますか?私はoffset(100、.. count ..)を試しましたが、エラーが出ます:(list)オブジェクトは 'integer'と入力することはできません)。

提案がありますか?

おかげ

+0

ようになるでしょうか? –

+0

私はそれをするだろうが、私はどのようにわからない。私は質問を編集することはできません。 – Osdorp

+0

ありがとう@aosmith。私はすでに試してみましたが、データを100ではなく0にプロットしています。 – Osdorp

答えて

0

hereを示すように、あなたは代わりにオフセットを使用しての式でI(y - 100)コーディングを使用することができます。

しかし、stat_smoothの予測値はy - 100であり、yではありません。この行は0になります。position_nudgeを使用して、元のy変数の予測を表示する位置に行を戻すことができます。

あなたには、いくつかのデータを投稿することができますのでstat_smoothコードが

stat_smooth(method = "lm", formula = I(y - 100) ~ x + 0, 
      position = position_nudge(y = 100)) 
+0

ありがとう@aosmith。 position_nudgeはオフセットを解決しました。 – Osdorp

関連する問題