This is a following up question of this question: How to have a new line in a `bquote` expression used with `text`?
But now I have it in a legend and this seems to change the things.
I tried the following:
test<-c(10:1)
dummy1<-0.004323423
dummy2<-0.054
dummy3<-0.032
plot(test,c(1:10))
legend("topright",
legend=c(bquote(Qua_0,99^normal == .(round(dummy1,4))),bquote(Qua_0,95^normal == .(round(dummy2,4))),bquote(Qua_0,99^t == .(round(dummy3,4)))),
bty = "n",lwd=2, cex=1, col=c("red","black","darkgreen"), lty=c(1,3,5))
So, I want to have
The expression correct, so that the index 0,95 is correctly written and also the power ^ correclty
linebreak after the equal sign
colored text, the same as the lign, so the first would be in red
I tried to implement the answers of the already existing posts but I did not figured it out, atop is also not working.
line type (lty) can be specified using either text (“blank”, “solid”, “dashed”, “dotted”, “dotdash”, “longdash”, “twodash”) or number (0, 1, 2, 3, 4, 5, 6).
In order to draw our legend outside of the plotting area, we can use a combination of the “topright” argument and an additional specification of inset. The “topright” argument specifies that the legend should be in the upper right corner of the graph.
First create a vector of 3 expressions, and use substitute
to create the appropriate dummy values. Note that I am using as.expression
so that they are not immediately evaluated, and the use of atop
for the line break. Then use that vector when calling legend
:
v <- c(
as.expression(substitute(atop(Qua[0.99]^normal == "", dummy), list(dummy=round(dummy1,4)))),
as.expression(substitute(atop(Qua[0.95]^normal == "", dummy), list(dummy=round(dummy2,4)))),
as.expression(substitute(atop(Qua[0.99]^t == "", dummy), list(dummy=round(dummy3,4))))
)
cols <- c("red","black","darkgreen")
legend("topright", legend=v, bty = "n",lwd=2, cex=1, col=cols, text.col=cols, lty=c(1,3,5))
The color of the text is set with text.col
.
If you want to stick to the use of bquote
rather than substitute
:
v <- c(
as.expression(bquote(atop(Qua[0.99]^normal == "", .(round(dummy1,4))))),
as.expression(bquote(atop(Qua[0.95]^normal == "", .(round(dummy2,4))))),
as.expression(bquote(atop(Qua[0.99]^t == "", .(round(dummy3,4)))))
)
To make the normal and 0.99 bold, you can use bold
in the expression:
v <- c(
as.expression(substitute(atop(Qua[bold(0.99)]^bold(normal) == "", dummy), list(dummy=round(dummy1,4)))),
as.expression(substitute(atop(Qua[bold(0.95)]^bold(normal) == "", dummy), list(dummy=round(dummy2,4)))),
as.expression(substitute(atop(Qua[bold(0.99)]^bold(t) == "", dummy), list(dummy=round(dummy3,4))))
)
But the 0.99 will not be very bold actually:
You can try with text in normal size using textstyle
:
v <- c(
as.expression(substitute(atop(Qua[textstyle(0.99)]^textstyle(normal) == "", dummy), list(dummy=round(dummy1,4)))),
as.expression(substitute(atop(Qua[textstyle(0.95)]^textstyle(normal) == "", dummy), list(dummy=round(dummy2,4)))),
as.expression(substitute(atop(Qua[textstyle(0.99)]^textstyle(t) == "", dummy), list(dummy=round(dummy3,4))))
)
and get this:
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