में सलाखों का ऑर्डर और रंग ggplot2
का उपयोग करके बनाई गई स्टैक्ड बार प्लॉट के साथ मुझे बहुत परेशानी की समस्या है। पहले पूछे गए कुछ समान प्रश्न हैं लेकिन उदाहरण कोड के माध्यम से जाने के बाद मैं यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं।ggplot2 barplot
मैं ग्राफ बनाना चाहता हूं ताकि बार को उनके Biogeographic.affinity
के आधार पर निम्न क्रम में रखा गया हो: (ऊपर से नीचे = बासियन, व्यापक, टोर्रेसियन और आइरियन)। सलाखों के रंग होना चाहिए: (बासियन = ड्रैकग्रे, वाइडस्पेड = लाइटग्रे, टोरेसियन = व्हाइट, और आइरियन = काला)।
biogeo
Site Biogeographic.affinity Rank Number.of.species Total.Species Percent
1 A Bassian 1 1 121 0.8264463
2 A Eyrean 4 39 121 32.2314050
3 A Torresian 3 62 121 51.2396694
4 A Widespread 2 19 121 15.7024793
5 DD Bassian 1 1 128 0.7812500
6 DD Eyrean 4 46 128 35.9375000
7 DD Torresian 3 63 128 49.2187500
8 DD Widespread 2 18 128 14.0625000
9 E_W Bassian 1 1 136 0.7352941
10 E_W Eyrean 4 54 136 39.7058824
11 E_W Torresian 3 65 136 47.7941176
12 E_W Widespread 2 16 136 11.7647059
13 KS Bassian 1 2 145 1.3793103
14 KS Eyrean 4 63 145 43.4482759
15 KS Torresian 3 62 145 42.7586207
16 KS Widespread 2 18 145 12.4137931
17 Z_Ka Bassian 1 1 110 0.9090909
18 Z_Ka Eyrean 4 64 110 58.1818182
19 Z_Ka Torresian 3 31 110 28.1818182
20 Z_Ka Widespread 2 14 110 12.7272727
यह (इस समस्या को दूर करने के लिए अपने असफल प्रयासों के कुछ सहित) कोड मैं अब तक लिखा है है:
यह वही डाटासेट लग रहा है की तरह है।
ggplot(data=biogeo, aes(x=Site, y=Percent, fill=Biogeographic.affinity)) + geom_bar(stat="identity", colour="black")+
scale_fill_grey() + ylab("Percent") + xlab("Location") +
theme_bw()+ theme(panel.grid.minor = element_blank())
यह मूल ग्राफ देता है लेकिन रंग और आदेश अभी भी गलत हैं। आदेश मैंने कोशिश की सही करने के लिए, लेकिन वह कुछ भी नहीं बदला (कुंठित) !:
newone <- transform(biogeo, Biogeographic.affinity = factor(Biogeographic.affinity), Rank = factor(Rank, levels = 1:4))
रंग बदलने मैंने कोशिश की और काम करने के लिए लगता है है के रूप में लेकिन यह सब दिखता आदेश की तरह अभी भी गलत है!
cols<- c("Bassian"="darkgrey","Widespread"="lightgrey", "Torresian"="white", "Eyrean"="black") #designates the colors of the bars
ggplot(data=newone, aes(x=Site, y=Percent, fill=Biogeographic.affinity)) + geom_bar(stat="identity", colour="black")+
scale_fill_manual(values = cols) + ylab("Percent") + xlab("Location") +
theme_bw()+ theme(panel.grid.minor = element_blank())
कृपया मदद करें।
स्तरों के क्रम @IDelToro? क्यूं कर? – agstudy
ggplot2 के वर्तमान संस्करण में, ऑर्डर करने वाले कारक स्तर अब 'stat =" पहचान "' और 'position =" stack "' या 'position =" fill "के साथ बार प्लॉट के विशिष्ट मामले में काम नहीं करते हैं। (साथ ही, मेरा मानना है कि 'ऑर्डर' सौंदर्य दूर चला गया है।) इसके बजाय, अब आपको वास्तव में डेटा फ्रेम को "सही" क्रम में सॉर्ट करना होगा। [यहां] देखें (https://github.com/hadley/ggplot2/issues/1593)। – joran