2017-06-07 72 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) + 
相关问题