r - 'Labels on top' with facet_grid, or 'space option' with facet_wrap -


facet_grid मुझे y axis ( अंतरिक्ष तर्क):

  df & lt; - data.frame (label = c ("variable one", rep ("variable two", 2), प्रतिनिधि ("variable ("ए", "बी", "सी", "डी", "ई", "एफ"), मान = rnorm (6)) ggplot (डीएफ, एईएस (एक्स) + Value, y = आइटम)) + geom_point () + facet_grid (लेबल ~।, तराजू = "नि: शुल्क_", अंतरिक्ष = "नि: शुल्क_") + ylab ("") + थीम (strip.text.y = element_text (angle = 0))  

यहां छवि विवरण दर्ज करें

लेकिन मैं शीर्ष पर पहलू लेबल चाहूंगा, इसलिए मैं facet_wrap पर स्विच करूँगा, और space तर्क खो दिया है (पहलुओं की सभी एक ही चौड़ाई है):

  ggplot (df, aes (x = value, y = आइटम)) + geom_point () + facet_wrap (~ लेबल, तराजू = "नि: शुल्क_", ncol = 1) + ylab ("")  < / प्री> 

दर्ज करें I दाना विवरण यहाँ

क्या दोनों दुनिया का सर्वश्रेष्ठ प्राप्त करना संभव है?

आपकी मदद के लिए अग्रिम धन्यवाद।

यह मैन्युअल रूप से किया जा सकता है। वांछित प्लांट में तीन पैनलों की ऊंचाइयों का अनुपात मोटे तौर पर 1: 3: 2 है। तीन पैनलों की ऊंचाई को बदलकर समायोजित किया जा सकता है:

  लाइब्रेरी (ggplot2) लाइब्रेरी (ग्रिड) df & lt; - data.frame (label = c ("variable one", rep ("ए", "बी", "सी", "डी", "ई", "एफ"), मूल्य ("परिवर्तनीय दो", 2), प्रतिनिधि ("वेरिएबल तीन", 3)), आइटम = सी ("ए", "बी" = Rnorm (6)) p1 = ggplot (df, aes (x = value, y = आइटम)) + geom_point () + facet_wrap (~ label, scales = "free_y", ncol = 1) + ylab ("") g1 = GgplotGrob (p1) g1 $ ऊँचाई [[7]] = इकाई (1, "शून्य") g1 $ ऊंचाई [[12]] = इकाई (3, "शून्य") g1 $ ऊंचाई [[17]] = इकाई ( 2, "शून्य") grid.newpage () grid.draw (g1)  

या, ऊंचाइयों को मूल साजिश के समान ही सेट किया जा सकता है:

  p2 = ggplot (df, aes (x = मान, y = आइटम)) + geom_point () + facet_grid (लेबल ~।, Scales = "free_y", space = "free_y") + ylab (" ") + थीम (स्ट्रिप.टेक्स्ट.आई = एलिमेंट_टेक्स्ट (एंगल = 0)) जी 2 = जीजीप्लोटग्राबो (पी 2) जी 1 डॉलर ऊँचाई [[7]] = जी 2 डॉलर ऊँचाई [[6]] जी 1 डॉलर ऊंचाई [[12]] = G2 $ ऊँचाई [[8]] g1 $ ऊंचाइयों [[17]] = जी 2 डॉलर ऊंचाइयों [[10]] ग्रिड.न्यूपेज () ग्रिडडाउर (जी 1)   

या, ऊंचाइयों को मूल साजिश के संदर्भ के बिना सेट किया जा सकता है। उन्हें आइटम के लिए प्रत्येक label में df के हिसाब से सेट किया जा सकता है। और पैनल से संबंधित लेआउट से आइटम का चयन करने के लिए कुछ कोड उधार लेना:

  # से 'डीएफ', प्रत्येक 'लेबल' के लिए 'आइटम' की संख्या प्राप्त करें। # यही है, प्रत्येक पैनल में नंबर वाई-ब्रेक्स। पुस्तकालय (पीलीर) एन = डीएलपीए (डीएफ,। (लेबल), फ़ंक्शन (x) लंबाई (पंक्ति.नाम (x))) # पैनल के अनुरूप जी 1 लेआउट में आइटम प्राप्त करें। पैनल 1 और लेफ्टिनेंट; - g1 $ लेआउट $ t [grepl ("पैनल", g1 $ लेआउट $ नाम)] # रिश्तेदार ऊंचाइयों g1 $ ऊँचाइयों [पैनल 1] & lt; - इकाई (एन, "रिक्त") के साथ डिफ़ॉल्ट पैनल ऊंचाइयों को बदलें # # ड्रा G1 grid.newpage () grid.draw (g1)  

प्रविष्ट करें छवि विवरण यहाँ


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -