表示されている動作は、ggplot2
がプロットの軸範囲外のデータを処理するためです。以下の説明のように、scale_y_continuous
(または同等の場合はylim
)またはcoord_cartesian
を使用して、この動作を変更できます。
library(ggplot2)
# All points are visible in the plot
ggplot(mtcars, aes(mpg, hp)) +
geom_point()
以下のコードでは、hp = 335の1点がプロットのy範囲外です。また、y軸の範囲を設定するのにscale_y_continuous
を使用したため、この点は、ggplotで計算された他の統計や集計尺度(線形回帰線など)には含まれません。以下のコードで
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
scale_y_continuous(limits=c(0,300)) + # Change this to limits=c(0,335) and the warning disappars
geom_smooth(method="lm")
Warning messages:
1: Removed 1 rows containing missing values (stat_smooth).
2: Removed 1 rows containing missing values (geom_point).
、HP = 335を有する点がプロットのY範囲外にまだあるが、この点は、それにもかかわらず、任意の統計又は線形回帰として計算をggplot集約尺度、に含まれていますライン。これは、coord_cartesian
を使用してy軸の範囲を設定したためで、この関数はデータの他の計算を行うときにプロット範囲外の点を除外しないためです。
これと前のプロットを比較すると、2番目のプロットの線形回帰線は、回帰直線を計算するときにhp = 335の点が含まれているため、少し急勾配になりますプロットに表示されます。
を持っていることを確認するためにあなたのx軸の動作をチェックしてください。この関数のため、値は0と0.12の間で制限されます。 'ylim(0,0.12)' – LyzandeR
再現可能な例は、質問に答えるのに役立ちます。 @LyzandeRは正しい軌道に乗っているようだ。 – vpipkt