ggplot

2012-12-01 29 views
7

में मिक्सिंग लाइन और स्कैटरप्लॉट मैंने एक उचित बिट aronud देखा है, लेकिन इस पर stumped हूँ। मुझे एक ऐसी रेखा को साजिश करने का कोई तरीका नहीं दिख रहा है जो स्कैटरप्लॉट से अलग नहीं है। समस्या को स्पष्ट करने के लिए यहां कुछ मेरा डेटा और कोड दिया गया है। मैं निम्नलिखित प्रपत्र बंद डेटा हैggplot

> head(allData) 
    AnnounceDate MarketProbability DealStatus binary BrierScore 
1 2000-04-10   0.3333333 Complete  1 0.2340565 
2 2000-06-14   0.2142857 Complete  1 0.3618200 
3 2000-06-26   0.6846154 Complete  1 0.3690167 
4 2000-06-16   0.1875000 Complete  1 0.4364041 
5 2000-10-05   0.9555556 Complete  1 0.3078432 
6 2000-10-19   0.8500000 Complete  1 0.2670799 

मैं MarketProbabilities बनाम AnnounceDate के बिखराव साजिश साजिश है, और रंग का उपयोग नहीं कर एक समझौते के लिए कि क्या सफलतापूर्वक पूरा कर लिया पहचान, यानी

ggplot(data = allData, aes(x=AnnounceDate, y=MarketProbability, colour=DealStatus)) + geom_point() + scale_colour_hue(h = c(180,0)) 

चाहते हैं enter image description here

लेकिन मैं यह भी एक रोलिंग जंगली गुलाब स्कोर ओवरले करना चाहते हैं, मैं

ggplot(data = allData, aes(x=AnnounceDate, y=MarketProbability, colour=DealStatus)) + geom_point() + scale_colour_hue(h = c(180,0)) + geom_line(aes(x=AnnounceDate, y=BrierScore)) 
की कोशिश की है

enter image description here

मुझे उलझन में है कि यह दो लाइनों की योजना क्यों बना रहा है, और रंग जोड़ रहा है? पिछली प्लॉट जानकारी के साथ मैं लाइन को कैसे अलग कर सकता हूं?

उत्तर

5

जैसा कि @ मैटबैग ने इंगित किया है, यह समस्या aes() को ggplot() कॉल से बाहर और geom_point() कॉल में रंग के लिए ले जाकर तय की गई है।

library(ggplot2) 

allData = read.table(header=TRUE, 
colClasses=c("Date", "numeric", "character", "numeric", "numeric"), 
text="AnnounceDate MarketProbability DealStatus binary BrierScore 
2000-04-10   0.3333333 Complete  1 0.2340565 
2000-06-14   0.2142857 Complete  1 0.3618200 
2000-06-26   0.6846154 Complete  1 0.3690167 
2000-06-16   0.1875000 Complete  1 0.4364041 
2000-10-05   0.9555556 Complete  1 0.3078432 
2000-10-19   0.8500000 Complete  1 0.2670799") 

p1 = ggplot(data=allData, aes(x=AnnounceDate)) + 
    geom_point(aes(y=MarketProbability, colour=DealStatus)) + 
    scale_colour_hue(h = c(180,0)) + 
    geom_line(aes(y=BrierScore)) 

ggsave(filename="plot_1.png", plot=p1, height=2.5, width=5) 

enter image description here

+1

geom_path: प्रत्येक समूह में केवल एक अवलोकन से मिलकर बनता है। क्या आपको समूह सौंदर्यशास्त्र को समायोजित करने की आवश्यकता है? – agstudy

+0

मुझे यकीन नहीं है कि आपकी टिप्पणी की व्याख्या कैसे करें: ggplot2 0.9.2.1 का उपयोग करके, पोस्ट कोड बिना त्रुटि के चलाता है, और पोस्ट पीएनजी आउटपुट करता है। जहां तक ​​मैं देख सकता हूं कि समूह सौंदर्यशास्त्र को परिभाषित करने की कोई आवश्यकता नहीं है। – bdemarest

+0

मेरे पास एक ही संस्करण है। वास्तव में अद्भुत! ओएस मुद्दा? – agstudy

2

जीजीप्लॉट() में एईएस() बाद के भूगर्भों द्वारा विरासत में प्राप्त होते हैं। आपने रंग = डीलस्टैटस असाइन किया है, जिसे geom_line() द्वारा विरासत में मिला है और इसे दो रंग बनाने के लिए दो पंक्तियां बनाने की आवश्यकता है। मैं इस परीक्षण नहीं कर सकते क्योंकि मैं अपने फ़ोन पर हूँ, लेकिन मुख्य ggplot से बाहर है और geom_point() में रंग काम ले जाने का प्रयास:

ggplot(data = allData, aes(x=AnnounceDate)) + 
    geom_point(aes(colour=DealStatus, y=MarketProbability)) + 
    scale_colour_hue(h = c(180,0)) + 
    geom_line(aes(y=BrierScore, group=1)) 

मैं एक समूह तर्क यह बताने के लिए के रूप में एक निरंतर द्वारा जोड़ा जा रहा सभी बिंदुओं को जोड़ने के लिए। अन्यथा, ggplot कभी-कभी गलत अनुमान बनाता है।