2016-11-25 113 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

相關問題