0

現在のグラフの上に別の一連のデータをプロットしたいと思います。追加データには、facet_wraping で使用される 3 つ (6 つのうち) の spp の情報のみが含まれます。

他の一連のデータは現在、(同じデータ ファイル内の) 列です。

現在のグラフ:

ped.num <- ggplot(data, aes(ped.length, seeds.inflorstem))

ped.num + geom_point(size=2) + theme_bw() + facet_wrap(~spp, scales = "free_y")

追加のレイヤーは次のようになります。

aes(ped.length, seeds.filled)

値がわずかに小さいため、同じ y 軸を使用してプロットできるはずだと思います。このレイヤーを追加するにはどうすればよいですか?

4

2 に答える 2

2

(サンプルデータを含めると、常により良い回答が得られますが、暗闇で撮影します)

同じ にある 2 つの変数をプロットしたいので、data.frameggplot に入力する前にデータを再形成するのがおそらく最も簡単です:

library(reshape2)

# Melting data gives you exactly one observation per row - ggplot likes that
dat.melt <- melt(dat, 
                 id.var = c("spp", "ped.length"),
                 measure.var = c("seeds.inflorstem", "seeds.filled")
)


# Plotting is slightly different - instead of explicitly naming each variable,
# you'll refer to "variable" and "value"
ggplot(dat.melt, aes(x = ped.length, y = value, color = variable)) +
    geom_point(size=2) + 
    theme_bw() + 
    facet_wrap(~spp, scales = "free_y")

seeds.filled値は、対応する種のファセットにのみプロットする必要があります。

異なるレイヤーを明示的にマッピングする Drew の (完全に有効な) アプローチよりも、これを好みますgeom_point()。変数が 2 つであろうと 20 であろうと、必要なのは 1 つだけであり、さまざまな美学を に簡単にマッピングできるからvariableです。

于 2013-11-14T23:44:25.147 に答える
2

@ialm のソリューションは正常に機能するはずですが、コードが読みやすくなるため、aes関数を個別に呼び出すことをお勧めします。geom_*

ped.num <- ggplot(data) +
                 geom_point(aes(x=ped.length, y=seeds.inflorstem), size=2) +
                 theme_bw() + 
                 facet_wrap(~spp, scales="free_y") +
                 geom_point(aes(x=ped.length, y=seeds.filled))
于 2013-11-14T23:44:16.133 に答える