2012-02-02 26 views
43

मैं दो अलग-अलग डेटा.फ्रेम से, एक प्लॉट में दो ggplots को जोड़ना चाहता हूं। नीचे आपको कोड मिलेगा। मैं भूखंड 1 & 2 या भूखंडों 3 & 4.ggplot विभिन्न डेटा से दो भूखंडों को जोड़ता है। फ्रेम

df1 <- data.frame(p=c(10,8,7,3,2,6,7,8), 
      v=c(100,300,150,400,450,250,150,400)) 
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400)) 

plot1 <- qplot(df1$v, df1$p) 
plot2 <- qplot(df2$v, df2$p, geom="step") 

plot3 <- ggplot(df1, aes(v, p)) + geom_point() 
plot4 <- ggplot(df2, aes(v, p)) + geom_step() 

यह क्या करने के लिए बहुत आसान होना चाहिए संयोजित करना चाहते हैं, लेकिन किसी भी तरह मैं यह काम करने के लिए नहीं मिल सकता है। आपके समय के लिए धन्यवाद।

+5

ggplot() का उपयोग कर '' वाक्य रचना, आप प्रत्येक व्यक्ति परत, उदा के लिए उपयोग करने के लिए डेटा निर्दिष्ट कर सकते हैं 'geom_step (डेटा = df2)' – baptiste

+0

धन्यवाद, यह सही काम करता है। – jeroen81

उत्तर

49

जैसा कि बैपटिस्ट ने कहा था, आपको भौगोलिक स्तर पर डेटा तर्क निर्दिष्ट करने की आवश्यकता है। या तो

#df1 is the default dataset for all geoms 
(plot1 <- ggplot(df1, aes(v, p)) + 
    geom_point() + 
    geom_step(data = df2) 
) 

या

#No default; data explicitly specified for each geom 
(plot2 <- ggplot(NULL, aes(v, p)) + 
     geom_point(data = df1) + 
     geom_step(data = df2) 
) 
+20

@ naught101 बाहरीतम कोष्ठक एक ही पंक्ति में प्लॉट प्रिंट को अपने असाइनमेंट के रूप में प्रिंट करने के लिए एक चाल है। आप इस चाल का उपयोग अन्य चर के साथ भी कर सकते हैं। '(my_variable <- 1: 5)' 'my_variable <- 1: 5 का एक क्लीनर संस्करण है; my_variable'। –

2

आप केवल qplot उपयोग करने के लिए इस चाल ले सकते हैं। आंतरिक चर $mapping का प्रयोग करें। आप अपने भूखंडों में भी रंग = जोड़ सकते हैं ताकि इसे मैपिंग में भी रखा जा सके, और फिर आपके प्लॉट स्वचालित रूप से किंवदंती और रंगों के साथ संयुक्त हो जाएं।

cpu_metric2 <- qplot(y=Y2,x=X1) 

cpu_metric1 <- qplot(y=Y1, 
        x=X1, 
        xlab="Time", ylab="%") 

combined_cpu_plot <- cpu_metric1 + 
    geom_line() + 
    geom_point(mapping=cpu_metric2$mapping)+ 
    geom_line(mapping=cpu_metric2$mapping) 
+0

इस दृष्टिकोण का उपयोग करके मैं दो रंग कैसे रख सकता हूं? –

+1

@WagnerJorge qplot दस्तावेज़ पढ़ने और cpu_metric2 को प्रारंभ करते समय रंग जोड़ें, जैसे 'qplot (y = ..., x = ..., color = ...)', फिर 'geom_line (मैपिंग ... , रंग = ...) ' –

28

मेरे लिए केवल काम कर समाधान, geom_line बजाय आधार वस्तु, ggplot में डेटा वस्तु को परिभाषित करने के लिए था।

इस तरह

:

ggplot() + 
geom_line(data=Data1, aes(x=A, y=B), color='green') + 
geom_line(data=Data2, aes(x=C, y=D), color='red') 
बजाय

ggplot(data=Data1, aes(x=A, y=B), color='green') + 
geom_line() + 
geom_line(data=Data2, aes(x=C, y=D), color='red') 

More info here

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