?par
解释说 lty
可以指定为交替绘制/跳过的线段长度的向量。
例如 c(1,3,1,1)
看起来像这样:
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
但是,如果我尝试将
lty=c(1,3,1,1)
传递给 matplot
(或者如果我使用 par
预设它),那么 matplot
假设我想循环遍历样式 1(实心)、样式 3(虚线)、样式 1(实心)、样式 1(实心) ,导致这个────────────────────────────────────────────────────────────────────────────
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
────────────────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────────────────
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
────────────────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────────────────
而不是这个
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
我怎样才能让
matplot
理解它应该将整个向量解释为一种风格? 最佳答案
所以 ?par
实际上是说自定义线型应该被指定为一个字符,具有偶数个元素,例如"33"
。
无论如何,matplot
不会将其与普通整数规范混合,因为它已经“选择”了 lty
参数为向量,每行一个值。
您可以向 matplot
传递一个字符向量并手动指定每个 lty
,例如类似 lty = c("44","22","33","3322")
的东西。或者您可以通过将最后几行更改为以下内容来创建自己的 matplot
版本:
if (!add) {
ii <- ii[-1L]
plot(x[, 1L], y[, 1L], type = type[1L], xlab = xlab,
ylab = ylab, xlim = xlim, ylim = ylim, lty = lty[[1L]],
lwd = lwd[1L], lend = lend[1L], pch = pch[1L], col = col[1L],
cex = cex[1L], bg = bg[1L], ...)
}
for (i in ii) lines(x[, i], y[, i], type = type[i], lty = lty[[i]],
lwd = lwd[i], lend = lend[i], pch = pch[i], col = col[i],
cex = cex[i], bg = bg[i])
以便它使用
[[
而不是 [
来选择适当的 lty
值。然后你可以将一个值列表传递给 lty
,每个值都会被正确解释。关于r - 如何在 R 中使用 matplot 绘制非常自定义的线条样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20036440/