2017-07-27 12 views
0

ggplotグラフに2つの注釈を追加します。 グラフにp1のようなfacet_gridが含まれていない場合、このようなannotate層を追加すると、つまりq1が正常に機能します。しかし、私は、同じ「注釈」層、エラー報告で、すなわち、q2結果追加、元のグラフ、即ち、p2に、facet_grid層を追加する場合:`ggplot2`の` annotate`は、 `facet_grid`と組み合わせてエラーを報告します。

Error: Aesthetics must be either length 1 or the same as the data (4): label

任意の提案?ありがとう。

PSでは、私が使用したggplot2パッケージのバージョンは2.2.1です。

p1 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() p2 <- p1 + facet_grid(vs~.) q1 <- p1 + annotate("text", x = 2:3, y = 20:21, label = c("my label", "label 2")) q2 <- p2 + annotate("text", x = 2:3, y = 20:21, label = c("my label", "label 2"))

答えて

0

次私は、パッケージの作成者から得た答えは、ハドレーウィッカム:

https://github.com/tidyverse/ggplot2/issues/2221

は、残念ながら、それは非常にですこれを自動的に行うには難しいannotate()。代わりに、自分でデータセットを作成するだけで "手作業で"行うことができます。

library(ggplot2) 
df <- data.frame(wt = 2:3, mpg = 20:21, label = c("my label", "label 2")) 
ggplot(mtcars, aes(wt, mpg)) + 
geom_point() + 
geom_text(aes(label = label), data = df) + 
facet_grid(vs ~ .) 
0

問題は、あなたがx= 2:3ためとy=20:21のために使用されているものです。 XとYには1つの値/引数しか与えられず、あなたの場合のようにベクトルではありません。あなたがx=2y=20に変更する場合は、プロットはエラーなしで表示されます:

ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + facet_grid(vs~.) + annotate("text", x = 2, y = 20, label = c("my label", "label 2")) 
関連する問題