2016-05-04 29 views
0

私は、aとbの2つのタイプの小さなローカルデータセット(5つの観測値)を持っています。 各観測には、日付フィールド(p.start)、比率、期間があります。ggplot2 facet_wrap geom_textは日付の値を受け付けません

local 

    principal p.start duration allocated.days ratio 
1   P 2015-03-18  1  162.0000 162.0000 
2   V 2015-08-28  4  24.0000 6.0000 
3   V 2015-09-03  1  89.0000 89.0000 
4   V 2015-03-30  1  32.0000 32.0000 
5   P 2015-01-29  1  150.1667 150.1667 

str(local) 

'data.frame': 5 obs. of 5 variables: 
$ principal  : chr "P" "V" "V" "V" ... 
$ p.start  : Date, format: "2015-03-18" "2015-08-28" "2015-09-03" "2015-03-30" ... 
$ duration  : Factor w/ 10 levels "1","2","3","4",..: 1 4 1 1 1 
$ allocated.days: num 162 24 89 32 150 
$ ratio   : num 162 6 89 32 150 

私は、面取りされたプロットに追加されるテキスト付きの別のデータフレームstatを持っています。

stats 

    principal   xx yy   zz 
1   P 2015-02-28 145.8 Average = 156 
2   V 2015-02-28 145.8 Average = 24 

str(stats) 

'data.frame': 2 obs. of 4 variables: 
$ principal: chr "P" "V" 
$ xx  : Date, format: "2015-02-28" "2015-02-28" 
$ yy  : num 146 146 
$ zz  : chr "Average = 156" "Average = 24" 

次のコードは失敗します。

p  = ggplot (local, aes (x = p.start, y = ratio, size = duration)) 
p  = p + geom_point (colour = "blue"); p 
p  = p + facet_wrap (~ principal, nrow = 2); p 
p  = p + geom_text(aes(x=xx, y=yy, label=zz), data= stats) 
p 
Error: Continuous value supplied to discrete scale 

任意のアイデア?私は何かが明らかでない。

+1

私はあなたのエラーメッセージを再現することはできません。私は "エラーがeval(expr、envir、enclos)にあります:オブジェクト 'duration' not found"の代わりに、 'stats'に列' duration'がないためです。表示したコードを正確に実行していますか?そして 'ggplot2'のどのバージョンを使っていますか? – Stibu

答えて

1

問題は、2つのdata.framesからプロットしていますが、最初のggplotコールには、local data.frameだけを参照するパラメータaesが含まれています。

geom_textdata=statsと指定されていますが、それでもsize=durationを探しています。

次の行は、私の作品:

ggplot(local) + 
    geom_point(aes(x=p.start, y=ratio, size=duration), colour="blue") + 
    facet_wrap(~ principal, nrow=2) + 
    geom_text(data=stats, aes(x=xx, y=yy, label=zz)) 
1

だけggplot (local, aes (x = p.start, y = ratio, size = duration))からsize = durationを削除し、geom_point (colour = "blue")にそれを追加します。その後、それは動作するはずです。

ggplot(local, aes(x=p.start, y=ratio))+ 
geom_point(colour="blue", aes(size=duration))+ 
facet_wrap(~principal, nrow=2)+ 
geom_text(aes(x=xx, y=yy, label=zz), data=stats) 

enter image description here

+1

両方の答えは完全に機能しました。ありがとう! – Gerry

関連する問題