2009-11-24 28 views
6

मुझे जीजीप्लॉट 2 को काम करने के लिए थोड़ा परेशानी हो रही है। असल में, मैं वास्तविक अवलोकन बनाम तुलना करना चाहता हूं जो उन्हें एक ही साजिश में डालकर अनुमानित है। उदाहरण के लिए,दो डेटा से डेटा प्लॉट करते समय किंवदंती के साथ समस्या। फ्रेम

> library(ggplot2) 
> df.actual <- data.frame(x = 1:100, y = (1:100) * 2) 
> df.approx <- data.frame(x = 1:150, y = (1:150) * 2 + 5 + rnorm(150, mean = 3)) 
> ggplot() + geom_point(aes(x, y), data = df.actual) + geom_line(aes(x,y), data = df.approx) 

मेरी समस्या यह है कि मैं एक किंवदंती प्रदर्शित नहीं कर सकता। मैंने कहीं पढ़ा है कि ggplot2 की किंवदंती बहुत लचीली नहीं है (?)। आदर्श रूप में, के साथ

  • title = 'टाइप'
  • कुंजी एक पौराणिक कथा: एक काले रंग की भरी बात है, और एक काले रंग की लाइन
  • कुंजी लेबल: 'वास्तविक', 'लगभग'
  • legend.position = 'टॉपराइट'

धन्यवाद।

उत्तर

6

यह आप

ggplot() + 
    geom_point(aes(x, y, colour = "actual"), data = df.actual) + 
    geom_line(aes(x, y, colour = "approximate"), data = df.approx) + 
    scale_colour_discrete("Type") 
+1

धन्यवाद हैडली मैं तारीख काले और सफेद साजिश को अलग करना चाहता हूं। क्या एक किंवदंती होना संभव है जैसा कि मैंने वर्णन किया है कि किसकी दो कुंजी एक बिंदु और रेखा है? – knguyen

4

यह आरंभ करने के लिए प्रयास करें ग्रिड वस्तु के हेरफेर से कथा को संशोधित करने के हैक किसी तरह का है:

library("ggplot2") 
df.actual <- data.frame(x=1:100, y=(1:100)*2) 
df.approx <- data.frame(x=1:150, y=(1:150)*2 + 5 + rnorm(150, mean=3)) 
p <- ggplot() + 
    geom_point(aes(x, y, colour="Actual"), data=df.actual) + 
    geom_line(aes(x, y, colour="Approximate"), data=df.approx) + 
    scale_colour_manual(name="Type", 
         values=c("Actual"="black", "Approximate"="black")) 
library("grid") 
grob <- ggplotGrob(p) 
tmp <- grid.ls(getGrob(grob, "key.segments", grep=TRUE, global=TRUE))$name 
grob <- removeGrob(grob, tmp[1]) # remove first line segment in legend key 
tmp <- grid.ls(getGrob(grob, "key.points", grep=TRUE, global=TRUE))$name 
grob <- removeGrob(grob, tmp[2]) # remove second point in legend key 
grid.draw(grob) 

ggplot2 output http://img134.imageshack.us/img134/8427/ggplotlegend.png

+0

पुनरुत्पादित उदाहरण के लिए धन्यवाद। ggplot2 को इस प्रकार की किंवदंती को स्वचालित रूप से संभालना चाहिए, इसलिए मैं इसे अपनी सूची में जोड़ दूंगा। – hadley

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