[R] Superscript in legend without using expression function
David Winsemius
dwinsemius at comcast.net
Sun Feb 8 04:19:04 CET 2015
On Feb 7, 2015, at 2:54 PM, Rolf Turner wrote:
> On 08/02/15 10:57, jgui001 wrote:
>> I am plotting three sets of data on a single graph, and doing around 100+
>> graphs.
>> I can use the expression function to superscript the 2 but that seems to
>> force me to manually put in the R squared values. Is there away around this?
>>
>> This code will show what it should look like this but with the 2
>> superscripted
>>
>> r1<-c(0.59,0.9,0.6)
>> plot(1:6)
>> legend("topleft",
>> legend=c(paste("G1 r=",r1[1]), paste("G2 r=",r1[2]), paste("G3 r=",r1[3])))
>
> One way of accomplishing this is:
>
> r1<-c(0.59,0.9,0.6)
> l3 <- c(as.expression(bquote(G[1]~~ r^2 == .(r1[1]))),
> as.expression(bquote(G[2]~~ r^2 == .(r1[2]))),
> as.expression(bquote(G[3]~~ r^2 == .(r1[3]))))
> plot(1:6)
> legend("topleft",legend=l3)
This might be a bit more compact:
r1<-c(0.59,0.9,0.6)
plot(1:6)
legend("topleft",
leg=as.expression(lapply(1:3, function(n) bquote( G*.(n)~r^2==.(r1[n])))))
I didn't see an indication that there were supposed to be subscripted numerals after the "G"'s
Initialy I tried just:
lapply(1:3, function(n) bquote( G*.(n)~r^2==.(r1[n])))
But this didn't have the proper mode, which was solved by wrapping in as.espression thus returning the correctly constructed expression vector:
expression(G * 1L ~ r^2 == 0.59,
G * 2L ~ r^2 == 0.9,
G * 3L ~ r^2 == 0.6)
This could also be delivered slightly less economically with this editing of your effort:
as.expression(c( bquote(G[1]~~ r^2 == .(r1[1])),
bquote(G[2]~~ r^2 == .(r1[2])),
bquote(G[3]~~ r^2 == .(r1[3]))
)
)
I'm not sure but I think that expressions can be vectors but I don't think that there are "call vectors", only call lists.
> Don't ask me to explain how this works. I just hammered and hoped till the desired results were produced.
>
> There are other ways, I think, some of which may be less prolix. Someone else may chime in and suggest a better way, but I think that the foregoing does what you want.
>
> cheers,
>
> Rolf Turner
>
> --
> Rolf Turner
> Technical Editor ANZJS
> Department of Statistics
> University of Auckland
> Phone: +64-9-373-7599 ext. 88276
> Home phone: +64-9-480-4619
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list