geom_smooth()
のgeom_smooth()
の引数をggplot
から動的に変更し、グループ内のデータポイントの数に適応させるにはどうすればよいですか? (各PRODUCT
基は約20エントリを有する)このチャートは完全に細かいggplot2からのgeom_smooth()を観測数に適合させる
1. DATE PRODUCT SIZE
2. 3/1/2017 A 10
3. 3/2/2017 B 14
4. 3/3/2017 C 25
5. 3/4/2017 A 16
6. etc.
、次のコードと、各グループに当てはめ黄土(PRODUCT
)を追加:
例えば、私は、次の形式のデータを持っています:
DT<-read.csv("TEST_DATA.csv")
DT$DATE<-as.Date(DT$DATE, "%m/%d/%Y")
myPlot<-ggplot(DT, aes(DATE, SIZE, color = PRODUCT))
myPlot + geom_point() + geom_smooth(method = "loess", se = FALSE)
しかし、のは、私が第四の製品のためのちょうど2のデータ・ポイント「D
」に追加しましょう。次に、次の警告メッセージが表示され、黄色のフィット線がANYグループのプロットに追加されません。
Warning messages:
1: In simpleLoess(y, x, w, span, degree = degree, parametric = parametric, ... : span too small. fewer data values than degrees of freedom.
私はこの警告は、製品D
のための観測数が少ない黄土フィットの自由度という点であるという事実によるものであると信じています。
設定すると、"loess"
が選択されますが、それは役に立たないので、設定方法は"lm"
になりません。
私は次のようにしたいと思いますが、それはうまく動作しません。あなたが見ることができるように
myPlot + geom_point() + geom_smooth(data = DT, method = if(length(DT$PRODUCT)<5) {"lm"} else {"loess"}, se = F)
、私は、任意のグループがそう"loess"
メソッドを使用し、5つの未満の観測を持っている場合geom_smooth()
使用method = "lm"
を持ってしようとしています。しかし、私は、geom_smooth()
関数内の各グループの観測数にアクセスする方法を理解することはできません。
こんにちはコンスタン、のための感謝:
iris
データフレームの場合は、最小のグループは、長さ50は、今度は、4つの値に一つのグループを短縮させましたあなたは返信する - それはnオプションが黄色のフィットをプロットするために使用するいくつの解像度ポイントを決定するようだが、これは数に関係しない根底にある観測の私は5回以下の観察をしたときには "lm"フィットを使いたい、そうでなければ "黄土"を使う。 – dme
こんにちはConstantinos、これは私が必要とするものです。ありがとうございました! – dme