2016-03-01 66 views
-1

我想把两条线放在一个图上。该数据是从数字变量的表来:R - 用线条()添加一条线条不起作用 - 为什么?

> str(tab1) 
'data.frame': 101 obs. of 5 variables: 
$ Cut_Point: num -4.63 -2.85 -1.92 -1.86 -1.73 ... 
$ N_Samples: int 63 63 63 63 63 63 63 63 63 63 ... 
$ Wilcoxon : num 0.0382 0.0382 0.0382 0.0382 0.0382 ... 
$ Cox_PH : num 0.0571 0.0571 0.0571 0.0572 0.0572 ... 

我想这将是非常简单的,所以我写了下面的代码:

plot(tab1$Cut_Point, -log10(tab1$Wilcoxon), type = "l", col = "red", main = "P-values vs Score", xlab = "Log10(Score)", ylab = "-Log10(P-Value)", ylim = c(0.5,1.5), xlim = c(-2,0.3)) 
coxline = -log10(tab1$Cox_PH) 
lines(coxline, col = "blue") 
abline(a = 1.122018, b = 0, col = "black") 
legend("bottomright", c("Wilcoxon", "Cox PH", "P = 0.05"), lty = c(1,1,1),col = c("red", "blue", "black")) 

将会产生以下图形是缺少一条蓝线:

DoesntWork

两个变量的范围是不是一个问题,因为下面的代码:

par(mfrow = c(2,1)) 
plot(tab1$Cut_Point, -log10(tab1$Cox_PH), type = "l", main = "Cox PH P-values vs Score", xlab = "Log10(Score)", ylab = "-Log(P-Value)", ylim = c(1, 1.5), xlim = c(-2,0.3)) 
abline(a = 1.122018, b = 0) 
plot(tab1$Cut_Point, -log10(tab1$Wilcoxon), type = "l", main = "Wilcoxon P-values vs Score", xlab = "Log10(Score)", ylab = "-Log10(P-Value)", ylim = c(1,1.5), xlim = c(-2,0.3)) 
abline(a = 1.122018, b = 0) 

产生以下图形;注意到顶部图形的线被定义完全一样,不会出现在第一个图形行:

Doesn'tWork2

我试图在plot()命令摆脱的xlim()ylim()参数和有也试图用tab1$log_cox = -log10(tab1$Cox_PH)创建一个新列,但这些方法都没有使难以捉摸的第二条蓝线出现。 我的代码都没有生成错误消息,所以我真的不知道为什么第二行不显示。包含这两行的图形的替代方法是欢迎但我真正想知道和理解的是为什么我的代码不会产生蓝线?

回答

1

您在拨打lines()时未提供x值;请尝试:

lines(tab1$Cut_Point , coxline, col = "blue")