web-dev-qa-db-ja.com

データを削除せずにggplot2軸を制限する(制限外):ズーム

Ggplotで軸の制限を指定すると、外れ点が削除されます。これはポイントには適していますが、指定した範囲と交差する線をプロットしたい場合がありますが、ggplotのrangeまたはxlim/ylimメソッドはこれらを削除します。範囲外のデータを削除せずにプロット軸の範囲を指定する別の方法はありますか?

例えば.

require(ggplot2)
d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c'))
ggplot(d, aes(x, y, group=grp)) + geom_line()
ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7))
ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7)
87
geotheory

Hadleyはこれを99ページで説明しています。彼の133 ggplot2本(第1版) 、または 第2版 がある場合は、ページ160から161。

問題は、あなたが言うように、スケール内のlimitsまたは設定 ylim() は、データを制約しているため、データが破棄されることです。真のズーム(すべてのデータを保持)の場合、デカルト座標系(または他の座標系 https://ggplot2.tidyverse.org/reference/#section-coordinate-systems)内に制限を設定する必要があります )。詳細については、 http://docs.ggplot2.org/current/coord_cartesian.html

ggplot(d, aes(x, y, group=grp)) + 
    geom_line() + 
    coord_cartesian(ylim=c(0, 7))

enter image description here

134
Tyler Rinker