जो व्यवहार आप देख रहे हैं, वह इस बात के कारण है कि 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)