2011-01-19 18 views
25

मेरे पास समय के साथ नमूने के कुछ सिग्नल हैं जो मैं लगातार लाइनों का उपयोग करके आर में साजिश करता हूं। इसके अतिरिक्त, मैं साजिश पर कई विशिष्ट समय सीमाओं को हाइलाइट करना चाहता हूं।साजिश पर समय सीमा को हाइलाइट करने के लिए कैसे?

मेरा वर्तमान दृष्टिकोण उचित चौड़ाई और क्षैतिज स्थिति के साथ पूर्ण-ऊंचाई पारदर्शी आयत खींचना है जो समय सीमा से मेल खाता है। मुझे लगता है कि यह एक अच्छा प्रतिनिधित्व है, क्योंकि यह स्पष्ट रूप से सीमा के अंदर बिंदुओं को अलग करता है; लेकिन क्या बेहतर लोग हैं?


और प्रश्न का दूसरा, व्यावहारिक हिस्सा। अब मैं इस तरह के संकेतों की साजिश रचने हूँ:

p <- ggplot(data=gs, mapping=aes(x=frameno, y=value, col=variable)) + 
     geom_line() 
p 

मैं मैन्युअल रूप से एक अल्फा मिश्रित आयत बनाने के लिए प्रयास किया है:

p + geom_rect(aes(xmin=600, xmax=650, ymin=-3, ymax=3), 
       colour=alpha("grey20", 0.5), fill.alpha=0.5) 

- लेकिन कोई सफलता अब तक। कोई संकेत?

उत्तर

45

मुझे लगता है कि ड्राइंग आयताकार ठीक काम करते हैं, मुझे a simple vertical line or lines पर्याप्त समाधान के बारे में कोई जानकारी नहीं है।

और बस भी geom_rect() में inherit.aes = FALSE को निर्दिष्ट पारदर्शिता जारी करने के लिए alpha=0.5 बजाय fill.alpha=0.5 का उपयोग करें। जैसे हीरे डेटा से एक साजिश कर रही है:

p <- ggplot(diamonds, aes(x=price, y=carat)) + 
    geom_line(aes(color=color)) 

rect <- data.frame(xmin=5000, xmax=10000, ymin=-Inf, ymax=Inf) 
p + geom_rect(data=rect, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax), 
       color="grey20", 
       alpha=0.5, 
       inherit.aes = FALSE) 

alt text

यह भी ध्यान रखें ymin और ymax-Inf और Inf आसानी से करने के लिए सेट किया जा सकता है।

+1

मैंने 'अल्फा = 0.5' की कोशिश की है, जो भी काम नहीं करता है। यह पारदर्शी भरने के साथ ठोस आयताकार खींचता है। ': (' – ulidtko

+0

@ulidtko: आप सही हैं, यह निर्दिष्ट करते हुए कि एक नया डेटा.फ्रेम उपयोग में है। मैंने एक ठोस उदाहरण जोड़ा, मुझे उम्मीद है कि आपको ऐसा कुछ चाहिए। – daroczig

+0

बिल्कुल मुझे जो चाहिए था। धन्यवाद। – ulidtko

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