I want to have three curves on the same plot with different parameter alpha.
curve(sin(x), from = 1, to = 3, lty = 1, ylim = c(-1, 1))
curve(sin(2 * x), add = TRUE, lty = 2)
curve(sin(3 * x), add = TRUE, lty = 3)
legend("topright", legend = expression(paste(alpha, " = ", c(1, 2, 3))), lty = 1:3)
In the legend, I want to have three lines with alplha = 1, alpha = 2, alpha = 3. How do I make it correct?
The better, looped answer comes from here and user20650.
Solution with sapply
The expression
function is quite tricky but in conjunction with substitute
you can use sapply
to loop:
curve(sin(x), from = 1, to = 3, lty = 1, ylim = c(-1, 1))
curve(sin(2 * x), add = TRUE, lty = 2)
curve(sin(3 * x), add = TRUE, lty = 3)
legend("topright",
legend = sapply(1:3, function(x) as.expression(substitute(alpha == B,
list(B = as.name(x))))),
lty = 1:3)
Simple Fix
curve(sin(x), from = 1, to = 3, lty = 1, ylim = c(-1, 1))
curve(sin(2 * x), add = TRUE, lty = 2)
curve(sin(3 * x), add = TRUE, lty = 3)
legend("topright", legend = c(expression(paste(alpha, " = ", 1)),
expression(paste(alpha, " = ", 2)),
expression(paste(alpha, " = ", 3))), lty = 1:3)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With