ggplot2 Rプロットの軸の制限を設定するにはどうすればよいですか?


358

私は以下をプロットします:

library(ggplot2)    

carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)

ggplot(vegLengths, aes(length, fill = veg)) +
 geom_density(alpha = 0.2)

ここで、範囲全体ではなく、x=-5000からまでの領域のみをプロットしたいとします5000

どうやってやるの?

回答:


584

基本的には2つのオプションがあります

scale_x_continuous(limits = c(-5000, 5000))

または

coord_cartesian(xlim = c(-5000, 5000)) 

1つ目は指定された範囲外のすべてのデータポイントを削除し、2つ目は可視領域のみを調整します。ほとんどの場合、違いはわかりませんが、データに何かを当てはめると、当てはまる値が変わる可能性があります。

また、最初のオプションと同様に、指定された範囲外のデータポイントを削除する簡易関数xlim(またはylim)を使用することもできます。

+ xlim(-5000, 5000)

詳細については、の説明を確認してくださいcoord_cartesian

RStudioチートシートについてはggplot2、これは非常に視覚的にクリアします。これはそのチートシートの小さなセクションです:

ここに画像の説明を入力してください

CC BYで配布


16
現在もありlibrary(scales); ... + scale_x_continuous(limits = c(-5000, 5000), oob=squish)(デフォルトはoob=censor)。参照してください?squish?censorgroups.google.com/forum
Ben Bolker

5
NB。オブジェクト全体がプロットから削除されるため、一部の頂点が境界の外にあるライン/ポリゴンを処理している場合、これは問題になる可能性があります
地理理論

1
@geotheory:それはcoord_cartesianアプローチにも当てはまりますか?
Nick Stauner 2014年

1
いいえ、私はもっと具体的だったはずです、最初の方法だけです
地質学2014年

実際には、「印刷」の目的で、coord_cartesian(xlim = おそらくylim同様にリセットし、ラベルとグリッドの切れ目をリセットする必要があります。
PatrickT

44

クイックノート:coord_flip()x軸とy軸の反転にも使用している場合coord_cartesian()、これら2つの関数は排他的であるため、を使用して範囲制限を設定することはできません(ここを参照)。

幸い、これは簡単な修正です。以下のcoord_flip()ように制限を設定してください:

p + coord_flip(ylim = c(3,5), xlim = c(100, 400))

これは表示範囲を変更するだけです(つまり、データポイントを削除しません)。


I似ていますが、難しい質問はここに掲載stackoverflow.com/questions/61531149/...片側のみに制限する方法について
IVIM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.