जो व्यवहार आप देख रहे हैं वह इस बात के कारण है कि ggplot2
साजिश की धुरी सीमाओं के बाहर मौजूद डेटा से संबंधित है। अक्षरों की श्रेणी निर्धारित करने के लिए आप scale_y_continuous
(या समकक्ष, ylim
) या coord_cartesian
का उपयोग करते हुए इस व्यवहार को बदल सकते हैं, जैसा कि नीचे बताया गया है।
library(ggplot2)
# All points are visible in the plot
ggplot(mtcars, aes(mpg, hp)) +
geom_point()
नीचे दिए गए कोड में, एचपी = 335 के साथ एक बिंदु साजिश की वाई-रेंज के बाहर है। इसके अलावा, क्योंकि हमने y-axis रेंज सेट करने के लिए 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).
नीचे कोड में, अश्वशक्ति = 335 के साथ बिंदु साजिश के y-सीमा के बाहर अब भी है, लेकिन इस बात फिर भी कोई आंकड़ा या इस तरह के रेखीय प्रतीपगमन के रूप में सारांश उपायों कि गणना ggplot, में शामिल है लाइन। ऐसा इसलिए है क्योंकि हमने y-axis रेंज सेट करने के लिए coord_cartesian
का उपयोग किया था, और यह फ़ंक्शन उस बिंदु को बाहर नहीं करता है जो साजिश के बाहर हैं जब यह डेटा पर अन्य गणना करता है।
यदि आप इसकी और पिछली साजिश की तुलना करते हैं, तो आप देख सकते हैं कि दूसरी साजिश में रैखिक प्रतिगमन रेखा थोड़ा धीमी ढलान है, क्योंकि एचपी = 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) ' – LyzandeR
एक पुनरुत्पादित उदाहरण प्रश्न का उत्तर देने में मदद करेगा। @LyzandeR सही रास्ते पर जा रहा प्रतीत होता है। – vpipkt