はで動作するように簡略化されたプロットである:書かれたようxpd = TRUEでも垂直線と水平線をプロットするにはどうすればよいですか?ここで
env <- data.frame(site = c('BLK','DUC','WHP','BLK','DUC','WHP','BLK','DUC','WHP'),
sal = c(5,6,3,2,4,5,6,8,4),
date = c(2013,2013,2013,2015,2015,2015,2017,2017,2017))
sitelist <- c('BLK','DUC','WHP')
par(mar=c(3,5,3,6), xpd = T)
plot(sal~date, data = env, type = 'n', ylim = c(0,10), ylab = 'Salinity',
bty = 'n', xlab = '')
abline(v=2016, col = 'khaki', lwd = 20)
abline(mean(env$sal), 0, lty = 3)
for (ii in seq_along(sitelist)) {
i <- sitelist[ii]; lines(sal[site==i] ~ date[site==i], data = env,
col = c(4,2,5)[ii], lwd = 2,
lty = c(1,2,3)[ii]);
points(sal[site==i] ~ date[site==i], data = env,
pch = c(0,1,2)[ii], col = c(4,2,5)[ii])}
legend('topright', title = 'sites', inset=c(-0.2,0), lty = c(1,2,3),
col = c(4,2,5), lwd = 2, sitelist,
pch = c(0,1,2))
、このコードはabline
機能は、外部のプロットの境界のxpd=T
のおかげで行くラインを作成するプロットを生成します。しかし、私はxpd=F
を設定したくありません。なぜなら、私は凡例を境界の外側にプロットすることができないからです。ソリューションは、境界の外側にある凡例をxpd=F
でプロットする方法か、境界で停止する線をプロットする方法のいずれかでなければなりません。理想的には、このソリューションは基本プログラムを使い、かなり標準化されているので、あまりカスタマイズしなくても〜20個のプロットにそれぞれドロップすることができます。
Iはsegments
を使用して試みたが、私の垂直線が一定時間を示す斜線領域の一種であると考えられるように、セグメントの丸みを帯びたエッジと幸せではなかったです。
電話? – rosapluesch