2
昨天,我問了一個question關於如何繪製多條(水平線),每條線都帶有用戶指定的顏色,而不使用循環。mapply中使用MoreArgs的奇怪() - 傳遞多個參數的值
我試圖使用建議的函數matplot()來繪製下面的圖中顯示的短垂直線和相關的代碼。
ci = matrix(1:30, nrow=3, byrow=T)
ci=list(rbind(ci[1,], ci[1,]+2),
rbind(ci[2,], ci[2,]+2),
rbind(ci[3,], ci[3,]+2))
x = rbind(1:10, 1:10)
plot(-5, xlim=c(1,10), ylim=c(1,32))
invisible(mapply(matlines, x=list(x), y=ci,
col=c("red","blue","black"),
lty = 1))
這是所有好。但是,我試圖將這些代碼封裝在一個函數中,我希望能夠輸入一個可選參數列表,然後可以將其傳遞給mapply/matlines。我試圖在mapply()中使用參數MoreArgs無濟於事。似乎MoreArgs所採用的論點與其他論壇不一樣。正如您在第一個代碼中看到的,列表中的每個項目都會獲得不同的顏色,但是當我將col放入列表args.ci中時,3種顏色將在列表中的每個項目內循環。我想知道是否有解決這個問題,如果我有一個參數的多個值,每個值被應用到列表中的一個項目。謝謝!
args.ci = list(col=c("red","blue","black"), lty=1:3)
plot(-5, xlim=c(1,10), ylim=c(1,32))
invisible(mapply(matlines, x=list(x), y=ci,
MoreArgs = args.ci))
謝謝你幫我兩天時間在一排!您發佈的腳本非常棒。通過修改它,我能夠簡化我正在使用的函數中的其他一些內容。 :) – Alex
@ X.He超級。你清楚的問題和可重複的例子使它很樂意提供幫助。 –