2017-03-16 42 views
1

我有一个小节小节图,它显示了两种算法的三种不同度量。 summary plot在R中的每个小节组的顶部添加小节差异值

如何在每个栏的顶部添加这两种不同算法之间的增加/减少百分比?例如,在精度条顶部,我们应该有-0.017,覆盖条顶部应该有+0.3867。

这里是我的R代码里面:

als_precision<-0.27069 
als_ndcg<-0.1523 
als_coverage<-362/3233 

als_reg_precision<-0.2659 
als_reg_ndcg<-0.1520 
als_reg_coverage<-502/3233 


barplot(matrix(c(als_precision,als_reg_precision,als_ndcg,als_reg_ndcg,als_coverage,als_reg_coverage),nr=2), beside=T, 
     col=c("red","blue"), 
     names.arg=c("[email protected]","[email protected]","coverage")) 
legend("topright", c("ALS","ALS+reg"), pch=15, 
     col=c("red","blue"), 
     bty="n") 
+0

为文本?看看'text()'。 –

回答

2

您可以使用text的文本添加到情节。

编辑原来没有用百分比的变化。

barplot(matrix(c(als_precision,als_reg_precision,als_ndcg,als_reg_ndcg, 
     als_coverage,als_reg_coverage),nr=2), beside=T, 
     col=c("red","blue"), ylim=c(0,0.30), 
     names.arg=c("[email protected]","[email protected]","coverage")) 
legend("topright", c("ALS","ALS+reg"), pch=15, 
     col=c("red","blue"), 
     bty="n") 

text(2, max(als_precision, als_reg_precision)+0.01, 
    round((als_reg_precision - als_precision)/als_precision,3)) 

text(5, max(als_ndcg, als_reg_ndcg)+0.01, 
    round((als_reg_ndcg - als_ndcg)/als_ndcg,3)) 

text(8, max(als_coverage, als_reg_coverage)+0.01, 
    round((als_reg_coverage - als_coverage)/als_coverage,3)) 

Bar Chart

+0

所有这些最大值,最小值计算的原因是什么? – HimanAB

+0

每个文本语句只需要一个最大值。我误解了这个问题。其余的最大值是在_highest_栏之上。 – G5W

+0

谢谢。如何在没有计算的情况下添加这些文本?例如,我可能希望将“+0.37”作为文本。 – HimanAB