2013-03-01 9 views
8

मैं एक बारप्लॉट प्राप्त करने की कोशिश कर रहा हूं जो काफी आम है, लेकिन आर में प्लॉटिंग पर कई दस्तावेज पढ़ने के बावजूद, और ggplot और इसकी सभी परतों के दस्तावेज़ीकरण को पढ़ने के बावजूद, मैं इस साजिश को रास्ता नहीं प्राप्त कर सकता मैं इसे चाहता हूँबारप्लॉट 2 चर के साथ साइड

मेरा डेटा काफी सरल है।

aov.data 
    Block RTreg RTrnd 
1 Block1 0.0000 862.0707 
2 Block2 667.2081 770.4315 
3 Block3 645.4730 696.0200 
4 Block4 674.5200 659.4765 
5 Block5 651.4295 633.7333 

क्या मैं प्राप्त करना चाहते हैं एक्स अक्ष में Block स्तंभ के साथ एक barplot, एक स्पष्ट चर के रूप में काम कर रहा है। वाई अक्ष में मैं RTreg और RTrnd कॉलम प्लॉट करने के लिए मान रखना चाहता हूं। यह वह हिस्सा है जिसे मैं सही नहीं कर सकता। मैं क्या चाहता हूं कि एक्स अक्ष में प्रति टिक दो बार नहीं हैं। उस ब्लॉक में RTreg के मान का प्रतिनिधित्व करने वाला एक बार, और उस ब्लॉक में RTrnd के मान का प्रतिनिधित्व करने वाला एक बार। कुछ ऐसा:

Valid XHTML

लेकिन दो के बजाय दो बार के 5 सेट के साथ।

अब तक, मैं निम्नलिखित कोड का इस्तेमाल किया है:

ggplot(aov.data,aes(x=Block)) + 
      geom_bar(aes(y=RTreg),stat="identity",position="dodge",col="blue") + 
      geom_bar(position="dodge") + 
      geom_bar(aes(y=RTrnd),stat="identity",position="dodge",col="red") 

मैं क्या सोचा था कि मैं क्या कर रहा था पहले ब्लॉक युक्त स्पष्ट एक्स अक्ष के साथ आधार साजिश बनाने के लिए किया गया था। फिर, geom_bar के साथ मैंने सोचा कि मैं जोड़ रहा था, पहले, RTreg कॉलम, और दूसरे geom_bar के साथ, कि मैं RTrnd कॉलम जोड़ रहा था। विकल्प positiondodge के बराबर होने के साथ, हालांकि मैं दोनों तरफ, दोनों तरफ पाने के लिए जा रहा था। हालांकि, मुझे जो साजिश मिल रही है वह है:

Valid XHTML http://s12.postimage.org/k0przrmtp/failed_geom_bar.png

किसी भी विचार को दो बार एक तरफ कैसे प्राप्त किया जाए, और उम्मीद है कि अलग-अलग रंगों और प्रत्येक के लिए एक किंवदंती है? मैं वास्तव में यहां कुछ मार्गदर्शन की सराहना करता हूं।

अग्रिम धन्यवाद।

उत्तर

20

आपको अपने डेटा फ्रेम को व्यापक रूप से लंबे समय से दोबारा बदलना होगा और फिर आपको प्रत्येक शर्त के लिए अलग-अलग सेट सेट करने की आवश्यकता नहीं है।

मानते हैं कि डेटा फ्रेम का नाम df है। बहुत ज्यादा

library(reshape2) 
df.long<-melt(df) 
ggplot(df.long,aes(Block,value,fill=variable))+ 
    geom_bar(stat="identity",position="dodge") 

enter image description here

+0

धन्यवाद। मुझे विश्वास नहीं है कि यह इतना आसान था! – HernanLG

+4

हां, ggplot में आपका स्वागत है ... जहां सरल और असंभव के बीच का अंतर बताना मुश्किल है! –

+0

मैं कहां निर्दिष्ट करता हूं कि कौन से वाई-मानों को लिया जाना चाहिए? जैसे मेरे पास 2 से अधिक कॉलम हैं (आरटीआरईजी, आरटीआरएनडी) – barracuda317

संबंधित मुद्दे