Tuesday, 15 April 2014

r - How to center values in stackbar plot and add greek text to legend with ggplot -


मैंने एक प्रत्यारोपण प्रयोग से अपने कैरियोटाइप (आणविक) परिणामों को प्रदर्शित करने के लिए 'ggplot' के साथ एक स्टैक्ड-बार प्लॉट बनाया है प्रत्येक पैनल एक स्थान का प्रतिनिधित्व करता है, और एक्स-एक्स विभिन्न substrates है, जबकि y- अक्ष तीन karyotypes में से प्रत्येक का प्रतिशत है।

मैंने कई उदाहरणों और स्टैक से जवाब देखे हैं अतिप्रवाह और यह पता नहीं लगा सकते कि निम्न कैसे करें:

  1. स्टैक्ड सलाखों के प्रत्येक अनुभाग के भीतर मूल्यों (दो दशमलव स्थानों पर गोल होना चाहिए) को केन्द्रित करें, अभी मैं उन्हें बस से ऑफसेट करता हूं शीर्ष पर।
  2. यूनानी "निचला अल्फा, निचला अल्फा", "बीडी" से यूनानी "निचला अल्फा, निचला बीटा" और "डीडी" से " निचला बीटा, निचला बीटा "।

यहां कुछ साप्ताहिक डेटा और कोड है जो उस साजिश की एक प्रति से उत्पन्न होता है।

  Karotype.Data & lt; - संरचना (सूची (स्थान = संरचना (सी (1 एल, 1 एल, 3 एल, 3 एल, 1 एल, 1 एल, 1 एल, 1 एल, 1 एल, 1 एल , 4L, 4L, 1L, 1L, 1L, 4L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L), .Label = c ( "Kampinge", "Kaseberga", "Molle" " सब्सट्रेट = संरचना (सी (1 एल, 1 एल, 1 एल, 1 एल, 1 एल, 2 एल, 2 एल, 3 एल, 4 एल, 2 एल, 3 एल, 3 एल, 3 एल, 3 एल, 3 एल, 4 एल, 4 एल) , 4L, 4L, 4L, 3 एल, 2L, 1L, 4L, 2L), .Label = c ( "Kampinge", "Kaseberga", "Molle", "Steninge"), वर्ग = "कारक"), कुपोषण = संरचना (ग (1L, 3 एल, 4L, 1L, 3 एल, 3 एल, 4L, 4L, 4L, 3 एल, 1L, 4L, 3 एल, 4L, 2L, 3 एल, 1L, 4L, 3 एल, 2L, 4L, 3 एल, 4L, 2L ("स्थान", "सब्सट्रेट", "कैरियोटाइप"), .एलएल = सी ("बी", "बीबी", "बीडी", "डीडी"), वर्ग = "कारक"))। , row.names = c (135L, 136L, 137L, 138L, 139L, 165L, 166L, 167L, 168L, 169L, 236L, 237L, 238L, 239L, 240L, 326L, 327L, 328L, 329L, 330L, 426L, 427L , 428L, 429L, 430L), वर्ग = "data.frame") z.counts & lt; - Karotype.Data% & gt;% group_by (स्थान, सब्सट्रेट, कुपोषण)% & gt;% संक्षेप (आवृत्ति = n ()) z .freq & lt; - z.counts% & gt;% फिल्टर (Karyotype! = '')% & Gt;% group_by (स्थान, सब्सट्रेट)% & gt;% mutate (प्रतिशत = आवृत्ति / योग (फ्रीक्वेंसी)) z.freq ggplot (z.freq, एईएस (x = सब्सट्रेट, y = प्रतिशत, भरने = कुपोषण)) + geom_bar (स्टेट = "पहचान") + geom_text (एईएस (लेबल = प्रतिशत), आकार = 5, समायोजित करें = 1, स्थिति = "स्टैक") + facet_wrap (~ स्थान, ncol = 2) + scale_y_continuous (name = "percentage") + थीम (strip.text.x = element_text (color = "black", size = 20, चेहरे = "बोल्ड"), अक्ष। Tetle.x = element_text (रंग = "काला", आकार = 20, चेहरे = "बोल्ड", vjust = -0.5), अक्ष.टेक्स.एक्स = element_text (रंग = "काला", आकार = 18), axis.title.y = element_text (रंग = "काला", आकार = 20, चेहरे = "बोल्ड", vjust = 1), अक्ष। Text.y = element_text (रंग = "काला Legend.title = element_text (color = "black", आकार = 20, चेहरा = "बोल्ड"), legend.text = element_text (color = "black", आकार = 18), legend.position = "नीचे")  

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

ग्रीक अक्षरों को जोड़ने के लिए किंवदंती के लिए, आप scale_colour_manual () के साथ रंग पैमाने को बदल सकते हैं:

  test = data.frame (x = 1: 30, y = 1: 30, लेबल = प्रतिनिधि (c (" Ggplot (test) + geom_point (aes (x = x, y = y, color = label)) + scale_colour_manual (values ​​= c (1,2, बीबी "," बीडी "," डीडी "), प्रत्येक = 10) 3), ब्रेक = सी ("बीबी", "बीडी", "डीडी"), लेबल्स = लिस्ट (बीकॉटे (अल्फा ~ अल्फा), बीसीटी (अल्फा ~ बीटा), बीसीटी (बीटा ~ बीटा)))  

तर्क मान रंग सेट करता है, breaks अपने ब्रेकपॉइंट सेट करता है (बीबी, बीडी और डीडी) और लेबल्स यूनानी सेट करता है जिन पत्रों को आप चाहते हैं

लीजेंड को गोल करने के लिए, आप अपने डेटाफ़्रेम में एक और कॉलम जोड़ सकते हैं, राउंड (प्रतिशत, अंकों = 3) के लिए मान सेट कर सकते हैं, और इस कॉलम को geom_text में उपयोग कर सकते हैं।

जीगप्लोट 2 में यूनानी अक्षर मिल सकते हैं


No comments:

Post a Comment