क्या मैं ऊपर से नीचे तक ggplot में स्ट्रिप लेबल की स्थिति बदल सकता हूँ?


80

मुझे पता है कि यह काफी डेटा विज़ुअलाइज़ेशन मुद्दा नहीं है, लेकिन बॉस ने इसके लिए कहा, इसलिए मुझे यह पता लगाने की ज़रूरत है कि क्या यह संभव है।

धन्यवाद!



11
ggplot2 शक्तिशाली लेकिन अभिमत सॉफ्टवेयर है- कभी-कभी यह ggplot तरीका या कोई रास्ता नहीं होता है।
शार्प जूल

सहमत हैं, तो ग्रिड का उपयोग करके कुछ संशोधन करने की आवश्यकता है, फिर से एक और खड़ी सीखने की अवस्था
lokheart

टिप्पणी में जुड़े हुए मंच पोस्ट देखें stackoverflow.com/questions/10058839/... है, जो आवश्यक ग्रिड hackery देता है
बेन Bolker

1
क्या आप स्वीकृत उत्तर को स्वीकार नहीं कर सकते? यह अब सही नहीं है, फिर भी यह उत्तर प्रश्न के लिए टकराने पर शीर्ष हिट है।
कोनराड रूडोल्फ

जवाबों:


97

2016 में खोज करने वालों के लिए एक जवाब।

ggplot22.0 के रूप में , स्विच तर्क लिए यह कर देगा facet_gridया facet_wrap:

डिफ़ॉल्ट रूप से, लेबल प्लॉट के शीर्ष और दाईं ओर प्रदर्शित होते हैं। यदि "x" है, तो शीर्ष लेबल नीचे प्रदर्शित होंगे। यदि "y" है, तो दाईं ओर के लेबल बाईं ओर प्रदर्शित होंगे। "दोनों" पर भी सेट किया जा सकता है।

ggplot(...) + ... + facet_grid(facets, switch="both")

Ggplot2 के रूप में 2.2.0 के ,

स्ट्रिप्स को अब स्वतंत्र रूप से अंदर रखा जा सकता है facet_wrap() स्ट्रिप का उपयोग करके तर्क (पदावनत switch)।

वर्तमान डॉक्स, अभी भी 2.1 पर हैं, लेकिन strip.position है प्रलेखित देव डॉक्स पर।

डिफ़ॉल्ट रूप से, लेबल प्लॉट के शीर्ष पर प्रदर्शित होते हैं। स्ट्रिप का उपयोग करते हुए। सेटिंग द्वारा चार में से किसी एक पर लेबल लगाना संभव हैstrip.position = c("top", "bottom", "left", "right")

ggplot(...) + ... + facet_wrap(facets, strip.position="right")

2
2020 अद्यतन - ggplot 3.3 - facet_grid अभी भी , या के switchतर्कों के साथ उपयोग करता हैxyboth
nniloc

11

अब आप इसका उपयोग कर सकते हैं facet_wrap(~var, strip.position = "bottom"), हालांकि किसी कारण से यह लेबल अक्ष टिक मार्क लेबल के ऊपर स्थित होता है, बजाय नीचे (जो मुझे लगता है कि अधिक समझ होगा), जैसा कि आप मेरे ग्राफ के एक छोटे हिस्से के स्क्रीनशॉट से देख सकते हैं।

ग्राफ का स्क्रीनशॉट

यदि आप नीचे लेबल रखना चाहते हैं, तो आपको यह करना होगा

ggplot(zzz, aes(x = c1, y = c2)) +
  facet_wrap(~ gp, scales = "free", nrow = 3, strip.position = "bottom") +
  geom_point() +
  theme(
    aspect.ratio = 1,
    strip.background = element_blank(),
    strip.placement = "outside"
  )

जैसा कि यहाँ देखा गया: https://github.com/tidyverse/ggplot2/issues/2622


-2

इसका जवाब है हाँ!

theme(strip.text=element_text(vjust=-10))

संख्या -10 आपके प्लॉट में आपके द्वारा उपयोग किए जा रहे पैमाने और इकाइयों द्वारा निर्धारित की जाती है।


1
मेरे लिए कोई प्रभाव या तो नहीं
२othe:१othe पर २ me

यह केवल पाठ को समायोजित करता है, चार्ट पर स्ट्रिप्स की स्थिति नहीं।
टेलर व्हाइट

1
मेरे लिए कोई भी प्रभाव नहीं, switchऊपर बताए अनुसार, तर्क का उपयोग करने की सलाह दें । विशेष रूप से ओपी का जवाब देने के लिए; switch = "x"प्लॉट के निचले हिस्से में लेबल ले जाएंगे।
इकोलॉजीटॉम

धन्यवाद ! आपके समाधान ने मुझे एक अन्य समस्या को ठीक करने में मदद की: मेरे पास लेबल्स को संरेखित करने के लिए (हालांकि अन्याय के बजाय hjust का उपयोग करना) छोड़ दिया है।
rvezy

-5

विषय के उपयोग पर अनुसरण करने के लिए:

विषय (पट्टी.टेक्स्ट = तत्व_टेक्स्ट (अन्याय = -१०))

सुनिश्चित करें कि आपके लेबल में सभी प्रकार के गाड़ी के रिटर्न हैं।

Label /n Facet /n Oneसे भिन्न दर पर अन्याय होगा Label /n Facet Two

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.