データを削除せずに ggplot2 軸を制限する (制限外): zoom 質問する

データを削除せずに ggplot2 軸を制限する (制限外): zoom 質問する

ggplot で軸の制限を指定すると、範囲外のポイントが削除されます。ポイントの場合はこれで問題ありませんが、指定された範囲と交差する線をプロットしたい場合、ggplotrangeまたは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)

ベストアンサー1

ハドリーは、彼の論文の99ページと133ページでこれを説明している。ggplot2 ブック (第 1 版)、または160~161ページを参照してください。第2版

問題は、あなたがおっしゃるように、limits規模や設定の中でylim()データが制限されるため、データが破棄されることになります。真のズーム(すべてのデータを保持する)のためには、直交座標系(または他の座標系)内で制限を設定する必要があります。https://ggplot2.tidyverse.org/reference/#セクション座標システム)。詳細については以下を参照してください。http://docs.ggplot2.org/current/coord_cartesian.html

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

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

おすすめ記事