2010-08-06 15 views
9

मैं यह जानना चाहता हूं कि इसे कैसे बनाना है ताकि एक्स और वाई, निम्न उदाहरण डेटा सेट क्षैतिज धुरी में फ्रेम के प्रत्येक तत्व के लिए लंबवत धुरी पर प्लॉट किए गए हों। मैं ggplot2 के साथ ऐसा कैसे करूं?ggplot और R: समय के साथ दो चर

एक्स, वाई चर, फ्रेम = YYYYMM

उदाहरण डाटा =:

df <- structure(list(x = c(0.000892333625290767, 0.0161153931761482, 
0.0188150880795816, 0.0268699106638318, 0.018657330651898, 0.0101065034206662, 
0.00154410447630379), y = c(1.35172948829027, 0.59654026447333, 
0.685835030118683, 0.741545898152761, 1.09653338596292, 0.119448208345102, 
0.104092642854814), frame = c(200912, 201001, 201002, 201003, 
201004, 201005, 201006)), .Names = c("x", "y", "frame"), row.names = c("1", 
"2", "3", "4", "5", "6", "7"), class = "data.frame") 

मैं एक एक लाइन में साजिश रची प्राप्त करने में सक्षम किया गया है, लेकिन यह है कि यह के रूप में मेरी फ्रेम पहचानने नहीं कर रहा है लगता है स्पष्ट (यह नहीं है कि, और न ही मुझे यह पता है कि इसे कैसे बदला जाए)।

library(reshape2) 
dfm = melt(df, id.vars='frame') 
ggplot(dfm, aes(x=frame, y=value, colour=variable)) + geom_line() 

यह है कि क्या अपने डेटा फ्रेम के लिए करता है:

p <- ggplot(df, aes(x=frame, y=x)) 
p + geom_line() 

उत्तर

10

आप अपने डेटा पिघल करने की जरूरत है

> dfm 
    frame variable  value 
1 200912  x 0.0008923336 
2 201001  x 0.0161153932 
3 201002  x 0.0188150881 
4 201003  x 0.0268699107 
5 201004  x 0.0186573307 
6 201005  x 0.0101065034 
7 201006  x 0.0015441045 
8 200912  y 1.3517294883 
9 201001  y 0.5965402645 
10 201002  y 0.6858350301 
11 201003  y 0.7415458982 
12 201004  y 1.0965333860 
13 201005  y 0.1194482083 
14 201006  y 0.1040926429 
+0

धन्यवाद फ़ॉर्मेट करने के लिए कर सकते हैं, लेकिन यह अभी भी एक निरंतर चर, जब यह पहले स्पष्ट –

+1

होना चाहिए के रूप में व्यवहार करता है फ्रेम पिघलना, एक कारक में फ्रेम बारी: डीएफ $ फ्रेम = कारक (डीएफ $ फ्रेम) – Greg

9

यह एक नहीं बल्कि देर से जवाब है, लेकिन अगर आप चाहते हैं कि आपके frame परिवर्तनीय intepreted तारीख (वर्ष का महीना), फिर इसे एक तारीख में परिवर्तित करें।

फिर आप scale_x_date और scales पैकेज का उपयोग X- अक्ष

DF <- melt(df, id.vars = 'frame') 
# note that I am arbitrarily setting each month to be the 15th 
# day of the month, to create a complete date 
DF$date <- as.Date(paste0(as.character(df$frame), '15'), '%Y%M%d') 
library(scales) 
ggplot(DF, aes(x =frame, y = value, colour = variable)) + 
geom_line() + 
scale_x_date('Month', labels = date_format('%b %Y'), breaks = date_breaks('2 months')) 

enter image description here