plot(NA, xlim=c(0,5), ylim=c(0,5), xlab="X", ylab="Y")
vecs <- data.frame(vname=c("a","b","a+b", "transb"),
x0=c(0,0,0,2),y0=c(0,0,0,1), x1=c(2,1,3,3) ,y1=c(1,2,3,3),
col=1:4)
with( vecs, mapply("arrows", x0, y0, x1,y1,col=col) )
Это будет выглядеть немного лучше, если вы добавите lwd=3 к вызову arrows
. Функция text
позволяет маркировать и может вращаться с помощью параметра 'srt'.
plot(NA, xlim=c(0,5), ylim=c(0,5), xlab="X", ylab="Y", lwd=3)
with( vecs, mapply("arrows", x0, y0, x1,y1,col=col,lwd=3) )
with(vecs, mapply('text', x=x1[1:3]-.1, y=y1[1:3]+.1,
labels=expression(list(a[1],a[2]), list(b[1],b[2]), list(a[1]+b[1],a[2]+b[2]) ) ))
![введите здесь описание изображения](https://i.stack.imgur.com/eTBtA.png)
Обратите внимание, что функция list
внутри вызова expression
является вызовом plotmath list
, отличным от обычного R list
, так же как plotmath-paste
отличается от обычного paste
. Он не предпринимает никаких попыток оценить свой аргумент в родительском фрейме. Для этого потребуется bquote
или substitute
и, вероятно, потребуется использовать sapply
для обработки "внутренних" выражений.
person
IRTFM
schedule
04.06.2012