Следуя предложению @JeffAllen, вот способ получить то, что, я думаю, вы могли бы хотеть. Требуется модификация функции legend()
для возврата положения точек (они задаются x1
и y1
в body(legend)[[46]]
).
legend2 <- legend
body(legend2)[[49]] <- quote(
invisible(list(rect = list(w = w, h = h, left = left, top = top),
text = list(x = xt, y = yt), points = list(x = x1, y = y1)))
)
Составить сюжет:
plot(-100:100, -100:100, type = "b")
При рисовании легенды нарисуйте белые линии (pch = 21
с pt.bg = 'white'
) над линиями и присвойте объекту значения, невидимые для legend2()
. Обратите внимание также на изменения pt.lwd
и pt.cex
.
myLegend <- legend2(1, .8, bty = 'n', c('sugar','citrus','none'), pch = 21,
pt.bg = 'white', pt.lwd = 0, lty = c(1, 2, 3), lwd = 1.5, title = "Condition",
pt.cex = c(1.8), cex = 1.5)
Наконец, нарисуйте символы, которые вы хотите использовать в легенде, используя points()
, предоставив значения x и y из объекта myLegend
.
points(myLegend$points$x, myLegend$points$y, pch = c('s','c','u'), cex = 1.5)
И это должно дать вам что-то вроде: