2012-05-22 9 views
8

का उपयोग करके बुरी तरह प्रदर्शित किया गया है। मैं आकाश पर खगोलीय वस्तु को साजिश करने की कोशिश कर रहा हूं (मूल रूप से अक्षांश/देशांतर के समतुल्य निर्देशांक के साथ)। मैंने "aitoff"coord_map फ़ंक्शन के प्रक्षेपण का उपयोग करके सफलतापूर्वक मेरे सभी बिंदुओं को प्लॉट किया, लेकिन इस मामले में, ग्रिड बुरी तरह प्रदर्शित होता है, यानी अवशिष्ट क्षैतिज रेखाएं अभी भी उनके सही अनुमानों के साथ शून्य के बराबर अक्षांश के लिए प्रदर्शित होती हैं।ग्रिड को ggplot2

enter image description here

मैं इन पंक्तियों को कैसे निकाल सकता है?

library(ggplot2) 
library(mapproj) 
sky2 = data.frame(RA=0, Dec=0) 
skyplot2 <- qplot(RA,Dec,data=sky2,xlim=c(0,360),ylim=c(-89.999,89.999), 
xlab="R.A.(°)", ylab="Decl. (°)",main="Source repartition on the sky") 
skyplot2 + coord_map(projection="aitoff",orientation=c(89.999,180,0)) + 
scale_y_continuous(breaks=(-2:2)*30,limits=c(-89.999,89.999)) + 
scale_x_continuous(breaks=(0:8)*45,limits=c(0,360), 
        labels=c("","","","","","","","","")) 

उत्तर

4

निश्चित रूप से इस ggplot2 में एक बग तो आप इस बग फ़ाइल करें सकता है

यहाँ कोड है कि व्यवहार को पुनरुत्पादित करता है? https://github.com/hadley/ggplot2/issues?state=openFiled as a bug

यहां एक त्वरित और गंदा हैक है।

f <- function(x, y, ...) { 
    if (any(is.na(x))) { 
    id <- rle(!is.na(x))$length 
    id <- rep(seq_along(id), id) 
    df <- data.frame(x, y, id) 
    df <- df[order(df$id, df$x), ] 
    } else if (any(is.na(y))) { 
    id <- rle(!is.na(y))$length 
    id <- rep(seq_along(id), id) 
    df <- data.frame(x, y, id) 
    } 
    polylineGrob(df$x, df$y, id = df$id, gp = gpar(col = "white")) 
} 

skyplot2 <- qplot(RA,Dec,data=sky2,xlim=c(0,360),ylim=c(-89.999,89.999), 
        xlab="R.A.(°)", ylab="Decl. (°)",main="Source repartition on the sky") 
skyplot2 + coord_map(projection="aitoff",orientation=c(89.999,180,0)) + 
    scale_y_continuous(breaks=(-2:2)*30,limits=c(-89.999,89.999)) + 
    scale_x_continuous(breaks=(0:8)*45,limits=c(0,360), 
        labels=c("","","","","","","","","")) + 
        opts(panel.grid.major = f) 

enter image description here

ध्यान दें कि यह aitoff प्रक्षेपण के साथ ही काम कर सकते हैं।

2

तुम बस जोड़ने की जरूरत:

+ opts(axis.ticks = theme_blank()) 
+0

हम्म। यह आंकड़े के निचले हिस्से में टिकों से छुटकारा पाता है, लेकिन अतिरिक्त (सीधी) क्षैतिज रेखाएं नहीं जो ओपी को हटाना चाहता है। –

+0

ओह woops। सवाल को पर्याप्त रूप से पर्याप्त नहीं पढ़ा। –