2016-01-23 59 views
0

我使用下面几行,以产生从两个4X10矩阵d1的行的下面的情节的情节,和d2在一个图:ř切割

plot(as.matrix(d1[2,]), as.matrix(d2[2,]), type="o", col="firebrick", 
ann=FALSE, pch=17, log = 'y',lty=4, xaxt = "n", yaxt="n",las=2) + 
lines(as.matrix(d1[1,]),as.matrix(d2[1,]), type="o", col="deepskyblue", 
ann=FALSE, pch=15, lty=4) + 
lines(as.matrix(d1[3,]),as.matrix(d2[3,]), type="o", col="darkorange", 
ann=FALSE, pch=18, lty=4) 

x_axis_range <- c(0, 1, 2, 4, 6, 8, 10, 12, 14) 
axis(1,at = x_axis_range, labels = x_axis_range) 

y_axis_range <- c(0, 4e+2, 1e+3, 5e+3, 3e+4, 7e+4,2e+5, 1e+6, 2e+6) 
y_axis_labels <- c("0", "400", "1K", "5K", "30K", "70K", "200K", "1M", "2M") 

axis(2,at = y_axis_range, labels = y_axis_labels, las=2) 

并可以产生: enter image description here

但也有这个情节的两个问题:

  1. 正如你可以看到蓝线的一部分,但我强迫y轴为蓝线是从0开始的最低y值的连斩100
  2. 如果你看一下上面的代码,我画了三条线,图中缺少了一个“darkorange”。这个问题类似于上述问题:整个暗线从y = 1e + 6开始,我没有将R显示在图中。我不知道发生了什么:/。

编辑:这些运行此时是R的警告输出:

数字(0)

警告消息:

1:在xy.coords(X ,y,xlabel,ylabel,log):NAs由 强制引入

2:xy.coords(x,y,xlabe升,ylabel,登录):通过的NA胁迫

3介绍:在xy.coords(X,Y):在xy.coords(X,Y):由的NA胁迫

4导入的NA引入受到胁迫

5:在xy.coords(X,Y):由强迫

6引入的NA:在xy.coords(X,Y):由的NA胁迫引入

回答

1

plot定义t的范围即使没有绘制,他也会旋转。正如你所看到的,“耐火砖”数据被绘制在其范围内。 lines仅在现有绘图中添加一行而不更改限制。 所以我建议尝试:

plot(as.matrix(d1[2,]), as.matrix(d2[2,]), type="o", col="firebrick", 
ann=FALSE, pch=17, log = 'y',lty=4, xaxt = "n", yaxt="n",las=2, 
ylim = c(50, 2e6)) 
#... 

你也可以密谋前检查最小值和最大值:

MinY <- min(d2) 
MaxY <- max(d2) 
plot(as.matrix(d1[2,]), as.matrix(d2[2,]), type="o", col="firebrick", 
ann=FALSE, pch=17, log = 'y',lty=4, xaxt = "n", yaxt="n",las=2, 
ylim = c(MinY, MaxY)) 
#... 
+0

辉煌。作品! – user3639557