geom_lineとgeom_pathの違いに嵌る

あんまよくわかってなくて、酷い目に会いましたよと。まず、以下のようなシミュレーション結果「ある経路を表すx, y列を持つデータ」が手もとにあったとする。

> head(df)
         x        y
1 119.2424 14.39025
2 118.9490 14.94898
3 118.6767 16.27511
4 117.9835 17.21644
5 117.1884 18.28008
6 116.7007 19.68278

これを普通にplot関数で描画すると

plot(df$x, df$y, type="l")


となって、「あぁ、なるほどこういう経路をたどったのね」とわかる。一方、これと同様のことをggplot2のgeom_line関数を使って描画を行うと

ggplot(df, aes(x=x, y=y)) + geom_line()


となってなんじゃこりゃとなった。これはgeom_line関数が「xのデータ順に線を繋いでくれる」もんだから問題となるのであって、もともとやりたかった「経路」的なものを描画したい時は、その名の通りgeom_path関数を使う。

ggplot(df, aes(x=x, y=y)) + geom_path()


結局、いつまで経ってもggplot2は慣れないというお話。