2017-06-07 71 views
0

我有一個小的數據集,我想用折線圖來繪製它:ggplot:錯誤:美學必須是長度爲1或相同的數據(10):X,Y,組

> Gain 
    quantile Positives Total_Examples Positive_Prevalence  Lift Cumsum_Positives 
1:  (0, ]   1    1     1 1.428571  0.1428571 
2: (1.9,2.8]   1    1     1 1.428571  0.2857143 
3: (2.8,3.7]   1    1     1 1.428571  0.4285714 
4: (3.7,4.6]   1    1     1 1.428571  0.5714286 
5: (4.6,5.5]   1    1     1 1.428571  0.7142857 
6: (5.5,6.4]   1    1     1 1.428571  0.8571429 
7: (6.4,7.3]   1    1     1 1.428571  1.0000000 
8: (7.3,8.2]   0    1     0 0.000000  1.0000000 
9: (8.2,9.1]   0    1     0 0.000000  1.0000000 
10: (9.1,10]   0    1     0 0.000000  1.0000000 

我的代碼如下:

ggplot(Gain) + 
    geom_area(aes(x = quantile, y = Cumsum_Positives, group = 1), color = "red", fill = "red", alpha = 0.5, size = 2) + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
    geom_line(aes(x = quantile, y = seq(0, 1 , by = 0.1) , group = 1), color = "blue", size = 2, alpha = 0.5) + 
    scale_x_discrete(name ="% of the Data Set", 
        labels=c("0%", "10%","20%","30%", "40%", "50%", "60%","70%","80%", "90%", "100%")) 

不過,我得到一個錯誤信息:

Error: Aesthetics must be either length 1 or the same as the data (10): x, y, group 

我已閱讀有關這種錯誤的帖子通常這個錯誤意味着在美學中調用的變量不存在於原始數據框中。但在這裏並非如此。

我也試過這個代碼,但它返回相同的錯誤消息,以及:

Gain$index <- row.names(Gain) 


ggplot(Gain) + 
    geom_area(aes(x = index, y = Cumsum_Positives, group = 1), color = "red", fill = "red", alpha = 0.5, size = 2) + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
    geom_line(aes(x = quantile, y = seq(0, 1 , by = 0.1) , group = 1), color = "blue", size = 2, alpha = 0.5) + 
    scale_x_discrete(name ="% of the Data Set", 
        labels=c("0%", "10%","20%","30%", "40%", "50%", "60%","70%","80%", "90%", "100%")) 

你的建議將不勝感激。

回答

1

你的數據長度是10,而在geom_line您ý審美是長度11

seq(0, 1 , by = 0.1) 
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 

的嘗試seq(0,0.9,by=0.1)seq(0.1,1,by=0.1)

0

如果你的目的是從(X = 0劃一條線,y = 0)至(x = 0.9,y = 1),您還可以用替換geom_line

geom_abline(slope = 1/9, 
      intercept = -0.109, 
      color = "blue", 
      size = 2, 
      alpha = 0.5) + 
相關問題