ggplot के लिए केवल एक सीमा का निचला भाग निर्धारित करें


82

क्या केवल निरंतर पैमाने के लिए एक सीमा के निचले हिस्से को निर्धारित करना संभव है? मैं ऊपरी सीमा को निर्दिष्ट करने की आवश्यकता के बिना अपने सभी भूखंडों को 0 बनाना चाहता हूं।

जैसे

+ scale_y_continuous(minlim=0)

जवाबों:


118

आप उपयोग कर सकते हैं expand_limits

ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0)

यहाँ दो की तुलना है:

  • के बिना expand_limits

  • साथ में expand_limits

संस्करण 1.0.0 के रूप में ggplot2, आप केवल एक सीमा निर्दिष्ट कर सकते हैं और दूसरी हो सकती है क्योंकि यह उस दूसरी सीमा को निर्धारित करके सामान्य रूप से निर्धारित की जाएगी NA। यह दृष्टिकोण एक्सिस रेंज के विस्तार और ट्रंकेशन दोनों के लिए अनुमति देगा।

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  scale_y_continuous(limits = c(0, NA))

इसके माध्यम से निर्दिष्ट करना ylim(c(0, NA))एक समान आंकड़ा देता है।


@PatrickT क्या आपका मतलब है कि stackoverflow.com/q/27028825/892313 पर एक टिप्पणी के रूप में ?
ब्रायन डिग्स

ठीक वही जो मेरे द्वारा खोजा जा रहा था। धन्यवाद
वीरा

12

कैसे का उपयोग कर के बारे में aes(ymin=0), के रूप में:

ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0)

7
यह geom_errorbar, आदि के लिए यमन को ओवरराइड करता है; Expand_limits () अधिक सुरक्षित लगता है।
मार्क

यह सार्वभौमिक नहीं, के रूप में एक के लिए है geom_densityयह मुझे देता है Error: stat_bin() must not be used with a y aestheticया जब अंदर रखा geom_density, Warning: Ignoring unknown aesthetics: ymin(बाद किया जा रहा है पूरी तरह से उम्मीद)
PatrickT

7

आप निम्न कोड को भी आज़मा सकते हैं, जो आपको शून्य-शून्य और न्यूनतम x-अक्ष और मिनट y मान के बीच के अंतर के बिना min y- अक्ष प्रदान करेगा।

scale_y_continuous(limits = c(0, NA), expand = c(0,0))

1
क्या coord_cartesian()इसके बजाय ऐसा करने का कोई तरीका है ?
रैंडी

-1

मुझे नहीं लगता कि आप सीधे ऐसा कर सकते हैं। लेकिन एक काम के आसपास, आप उस तरीके की नकल कर सकते हैं जो ggplot2 ऊपरी सीमा निर्धारित करता है:

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.