Поведінка, яку ви бачите, пов’язана з тим, як ggplot2
обробляються дані, що знаходяться за межами діапазонів осей графіку. Ви можете змінити цю поведінку залежно від того, використовуєте scale_y_continuous
(або, що еквівалентно ylim
), або coord_cartesian
встановлюєте діапазони осей, як пояснено нижче.
library(ggplot2)
ggplot(mtcars, aes(mpg, hp)) +
geom_point()
У наведеному нижче коді одна точка з hp = 335 знаходиться поза діапазоном y графіку. Крім того, оскільки ми використовували scale_y_continuous
для встановлення діапазону осі y, ця точка не входить до будь-якої іншої статистики або зведених показників, розрахованих ggplot, таких як лінійна лінія регресії.
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
scale_y_continuous(limits=c(0,300)) +
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, і ця функція не виключає точок, що знаходяться за межами діапазону графіку, коли вона робить інші обчислення даних.
Якщо порівняти цей та попередній графік, ви зможете побачити, що лінія лінійної регресії на другому графіку має трохи крутіший нахил, оскільки точка з hp = 335 враховується при обчисленні лінії регресії, хоча це не видно на графіку .
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
coord_cartesian(ylim=c(0,300)) +
geom_smooth(method="lm")
y
вісь цього питання. Значення обмежені між 0 і 0,12 через цю функцію:ylim(0,0.12)