2015-10-28 11 views
11

ggplotから何か変わった動作があります。ここMWEです:ggplot2でcoord_carteisanとcoord_flipを一緒に使うには

the_data <- data.frame(
    myx <- 1:10, 
    lower <- rnorm(10,-5,1), 
    mean <- rnorm(10,0,.5), 
    upper <- rnorm(10,5,1)) 
the_data2 <- data.frame(
    myx <- 1:10, 
    lower <- rnorm(10,-5,1), 
    mean <- rnorm(10,0,.5), 
    upper <- rnorm(10,5,1)) 

、私は最終製品が平均ためのポイントを持って、プロット、およびuppperに下から引かれた線を構築したいです。しかし、私はこれらの行を水平にしたい。また、グラフを「ズームイン」して、-1から1までの値のみが表示されるようにします。 coord_cartesianを使用する必要があります。なぜなら、ylimを使用すると、グラフの外側にあるデータポイントがドロップされ、そのラインが詰まってしまうからです。しかし、私は実行すると:

ggplot() + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data) + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data2) + 
    coord_cartesian(ylim = c(-1, 1)) + 
    coord_flip() 

が、それは「ズーム」と二つの引数を切り替えるには適用されません。

ggplot() + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data) + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data2) + 
    coord_flip() + 
    coord_cartesian(ylim = c(-1, 1)) 

がズームではなく、フリッピングapplys。何が起きてる?

+0

あなたは 'coord_cartesian(ylim = c(-1、1))'の後ろに '+'を忘れました... – beetroot

+0

固定、ありがとう。しかし、まだその問題があります... – Alex

答えて

11

は、coord_cartesianのラッパーです。あなたはcoord_cartesianへの2回の呼び出しを行い、2回目は最初のものを上書きします。これを行うことができます:

ggplot() + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data) + 
    geom_pointrange(aes(x=myx, y=mean, ymin=lower, ymax=upper), data=the_data2) + 
    coord_flip(ylim = c(-1, 1)) 
+0

これは理にかなっています。私はそれがこれらの線に沿って何かであると思った、ちょうどそれを理解できなかった!ありがとう! – Alex

3

同じプロットに対して複数の座標系を使用することは意味がありません。あなたは望みますcoord_flip(ylim = c(-1, 1))

関連する問題