2016-11-25 114 views
-1

我试图绘制两种不同的财务风险度量(强烈简化,不要认真对待)。我的意图是绘制两者并添加一些标签或图例来阐明图形。R:如何使用ggplot2绘制两个不同的变量并在R中添加图例标签?

require(ggplot2) 
library(reshape) 

alpha <- 0 
x <- c() 
var <- c() 
es <- c() 
for (i in 1:999) { 
    alpha <- alpha + 1/1000 
    x[i] <- i/1000 
    var[i] <- qnorm(alpha, mean=0) 
    es[i] <- dnorm(qnorm(alpha))/(1-alpha) 
} 


df <- data.frame(x,var,es) 
df <- melt(df,id=x) 
ggplot(df) + geom_line(aes(x=, y=value)) + scale_colour_manual(values=c("red","blue")) 

我一直在使用GGPLOT2(我开始用这个包还)尝试,但它每次显示出来的错误。我感觉到有些东西我缺少或者没有完全理解熔化数据帧或使用ggplot2。

+0

你没有什么映射到你的'x'美观,并且您还没有分配颜色美观,所以'scale_colour_manual'不会做任何事情。你想做什么? – alistaire

回答

1

有几件事。

  1. 你的melt调用没有设置得到你想要的。
  2. 您错过x您的aes致电geom_line的值。
  3. 您没有color在您的geom_lineaes致电,所以您的scale_color_manual什么都不做。

以下是生成以下图表的正确代码。更正上面的内容会得到你想要的,每个变量的彩色线条和一个图例。

df <- data.frame(x,var,es) 

df <- melt(df, id.vars = "x", measure.vars = c("var", "es")) 

ggplot(df, aes(x = x, y = value)) + 
     geom_line(aes(group = variable, color = variable)) + 
     scale_colour_manual(values=c("red","blue")) 

enter image description here

相关问题