我想绘制一个带有两个y轴的图并对其进行自定义,例如颜色,轴粗细等。但是我的某些数据具有NA值,我需要将绘制的线连接起来,但是没有。我还绘制了一些点,这些点显示了应该在哪里连接线。我搜索了一些示例,但是它们并不能真正适合我的情况(例如,here和here)。 数据示例:
Dates <- seq(as.Date("2018/03/15"), as.Date("2018/03/21"), "days")
V2=c(5.5,NA,NA,1,80,60,18)
V3=c(-8,NA,NA,-3.8,-14,-9,-6.2)
df <- data.frame(Dates,V2,V3)
现在,使用下面的代码可以给我所需的绘图类型,但是由于NA条目的缘故,左侧的数据未连接。
plot(df$Dates, df$V2, axes=F, type="l", xlab="", ylab="",col="blue", main="", lwd=2.5)
points(df$Dates, df$V2, pch=20, col="blue", cex=1.5)
axis(2, col="blue",lwd=2, cex.axis=1.2, col.axis="blue", las=2)
mtext(2,text="V2",line=3, col="blue")
axis.Date(1, at=df$Dates , format="%d/%m/%Y",las=1, cex.axis=1.2, lwd = 1.5, col= "black", col.axis="black")
par(new=T) # to add to the existing plot
plot(df$V3, axes=F, xlab="", ylab="", type="l",lty=2, main="",lwd=2, col="red")
points(df$V3, pch=20, col="red")
axis(4, lwd=2,line=1.5,las=2,cex.axis=1.2, col="red", col.axis="red")
mtext(2,text="V3",line=-30, col="red")
此图看起来不错,只需要它的左部分通过线连接即可: 之后,我继续从第一个链接尝试该示例,建议忽略NA。
xlim <- range(df$Dates) # not sure what this is doing
ylim <- range(df[-1], na.rm = TRUE) # ?
plot(V2 ~ Dates, na.omit(df), axes=F, type = "l", xlab="", ylab="", col="blue",lwd=2, xlim = xlim, ylim = ylim)
points(V2 ~ Dates, df, pch=20, col="blue", cex=1.5)
axis(2, col="blue",lwd=2, cex.axis=1.2, col.axis="blue", las=2)
axis.Date(1, at=df$Dates , format="%d/%m/%Y",las=1, cex.axis=1.2, lwd = 1.5, col= "black", col.axis="black")
mtext(2,text="V2",line=3, col="blue")
par(new=T) # to add to the existing plot
plot(V3 ~ Dates, na.omit(df), axes=F, xlab="", ylab="", type = "l",lty=2, col="red",lwd=2, xlim = xlim, ylim = ylim)
points(V3 ~ Dates, df, pch=20, col="red", cex=1.5)
axis(4, lwd=2,line=1.5,las=2,cex.axis=1.2, col="red", col.axis="red")
mtext(2,text="V3",line=-30, col="red")
但是,情节变得混乱并且不正确。 “蓝色部分”看起来还不错,只是“红色部分”很奇怪。请在下面查看。有任何想法如何使其正常工作吗?谢谢!