我使用以下两行来从两个4X10 Matrix 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)
但这个情节有两个问题:
编辑:这是R运行时的警告输出:
数字(0)
警告讯息:
1:在xy.coords(x,y,xlabel,ylabel,log)中:引入的NAs 胁迫
2:在xy.coords(x,y,xlabel,ylabel,log)中:引入的NAs 胁迫
3:在xy.coords(x,y)中:通过强制引入的NA
4:在xy.coords(x,y)中:强制引入的NAs
5:在xy.coords(x,y)中:通过强制引入的NA
6:在xy.coords(x,y)中:通过强制引入的NA
答案 0 :(得分:1)
plot
定义了轴的范围,即使没有绘制。如您所见,&#34; firebrick&#34; -data在其范围内绘制。
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))
#...