I am new to R and I am trying to figure out, how to write something like "This is my plot for (\n)8 <=(less than or equal) x <= 10" in my plot-title.
I tried something like this:
plot(1:10, main="Hey, guys, this is my plot for \n")
mtext(c(expression(8 <= x),expression(x <= 10), side=3)
This gives not exactly what I want but "8 (less or equal) x x (less or equal) 10", and those two expressions are printed in a line below the main title, (which is pretty cool) but in the same place, which is pretty much useless :)
I also tried:
plot(1:10, main=bquote(paste(8 <= x, x <= 10, sep=",")))
What kind of does what I want (except the seperator seems to be completely ignored), but I cant add further text. Output: "8 (less or equal) xx (less or equal) 10".
And when I tried
plot(1:10, main=paste("x",bquote(paste(x <= 8,z <= 10,sep=" ")),sep=" "))
the output irritated me completely: the title was: "xpaste (\n) x x <= 8 (\n) x z <= 10 (\n) x" (the (\n) is a line break, the other characters are exactly what is printed)
So is there a possibility to print expressions with more than one operator?
heyTitle <- bquote(atop(
"Hey, guys, this is my plot for",
{8 <=x}*phantom()<=10
))
plot(1:10, main=heyTitle)
Thanks to this answer for the atop()
trick.
EDIT: Here is the figure
EDIT 2: borrowing from another answer by G. Grothendieck to use brackets to fix spacing.
Try this:
plot( 1:10, main = ~ bold(atop("Hey, guys, this is my plot for", {"8" <= x} <= "10")))
On the windows()
device it looks like this:
REVISED spacing and made 2nd line a bit larger to match first line. Added rbatt's atop
idea. Further simplification.
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