2013-01-13 108 views
0

我产生ECDF情节,想一个传奇添加到它,但得到以下错误:如何将图例添加到ecdf图?

plot(xlim=c(0,100), ylim=c(0,1), main=NULL, xaxs="i", yaxs="i", 
    ecdf(PrecentageVector1), col="red", do.p = FALSE, pch=19, 
    lwd=3, legend("bottomleft",c("A","B","C")), panel.first = grid()) 

Error in strwidth(legend, units = "user", cex = cex, font = text.font) : 
invalid graphics state 

可能是什么问题呢?

+1

我不承认错误,无法重现,因为你没有给我们'PrecentageVector1'(原文如此)。一般来说,在'plot()'后面调用'legend()'' –

回答

5

?legend是一个独立的功能,它不是调用plot的一部分。 作为@timriffe说,你需要做的是这样的:

PrecentageVector1 <- c(10,20,30) 
plot(xlim=c(0,100), ylim=c(0,1), main=NULL, xaxs="i", yaxs="i", 
    ecdf(PrecentageVector1), col="red", do.p = FALSE, pch=19, 
    lwd=3, panel.first = grid()) 
legend("bottomleft",c("A","B","C")) 
+0

'panel.first = grid()'看起来很可疑。你知道这是否被'plot.ecdf'(etc)实际使用吗? –

+0

@MatthewLundberg - 我也这么认为,之前没有见过,但它的工作原理!试试'plot(1:10,panel.first = grid())'还有'panel.last =' - 'plot(1:10,panel.first = grid(),panel.last = abline(v = 4,col =“red”),pch = 19)'See'?plot.default' – thelatemail

+0

谢谢,是的,我现在看到了。我不得不在添加和添加参数之间来回切换以查看差异。网格线在我的显示器上非常虚幻。起初似乎什么都不做,所以我认为这个论点被吸进了一个“......”的某个地方。 –