私は以下をプロットします。
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
の間の領域だけをプロットしたいとします。
どうやってやるの?
基本的に2つの選択肢があります
scale_x_continuous(limits = c(-5000, 5000))
または
coord_cartesian(xlim = c(-5000, 5000))
1つ目は与えられた範囲外のすべてのデータポイントを削除し、2つ目は可視領域のみを調整します。ほとんどの場合、違いはわかりませんが、データに何かを当てはめれば、おそらく当てはめられた値が変わるでしょう。
省略形の関数xlim
(またはylim
)を使用することもできます。これは、最初のオプションと同様に、指定された範囲外のデータポイントを削除します。
+ xlim(-5000, 5000)
詳細については、 coord_cartesian
の説明を確認してください。
ggplot2
の RStudioチートシート は、これを視覚的にはっきりさせます。これがそのチートシートのごく一部です。
CC BY の下に配布されます。
クイックノート:coord_flip()
を使ってx軸とy軸を反転する場合、これら2つの関数は排他的なので、coord_cartesian()
を使って範囲制限を設定することはできません( here を参照)。
幸い、これは簡単な修正です。以下のようにcoord_flip()
内に制限を設定します。
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
これは可視範囲を変更するだけです(つまりデータポイントは削除されません)。