2013-10-17 92 views
0

我有一个已绘制的数据集,我现在试图用相应的点样式构建图例,点在图上正确绘制,但图例显示二进制响应的相同符号组。我有点困惑,为什么,希望它是小事。这里是我的代码pch in plot with R

# data should already be loaded in from the project on the school drive 
library(survival) 
attach(lace) 
lace 

# To control the type of symbol we use we will use psymbol, it takes 
# value 1 and 2 
psymbol <- FAILURE + 1 
table(psymbol) 
plot(AGE, TOTAL.LACE, pch=(psymbol)) 
legend(0, 15, c("FAILURE = 1", "FAILURE = 0"), pch=(psymbol))] 

picture

谢谢

回答

1

pysmbol是长度n,其中n是数据点的数据集数的载体。您的legend呼叫将此整个载体传递到pch,其中您确实只需要长度为2的矢量。因此,legend使用psymbol的前两个元素作为pch。现在,看看psymbol[1:2]。如果这不会返回两个1 s,我会非常惊讶。我建议你做pch = unique(psymbol)。它看起来应该是一个数字向量,所以应该工作。

注意,你不需要围绕psymbol括号在您的来电,并attach()荷兰国际集团的目标是你快速detach()后立即除非考虑不良做法。有关替代方法,请参阅?with

+0

我对此毫无头绪,谢谢你的回答,像魅力一样工作。 –

+0

我最终也做了以下事情:'psymbol < - unique(FAILURE + 1)' –

+1

我不认为你想要那个;如果在'plot()'调用之前执行此操作,则会导致'1:2'重复('1,2,1,2,1,2,...')长度为'n'。因此,用于绘图的符号可能不是正确的 - 因为您之前说过,它至少会在错误的符号中绘制第二个观察结果。 –