[R] math symbol + value of a variable in legend.
Martin Maechler
maechler at stat.math.ethz.ch
Thu Aug 27 10:29:55 CEST 2009
>>>>> "KRCT" == Kenneth Roy Cabrera Torres <krcabrer at une.net.co>
>>>>> on Tue, 25 Aug 2009 17:26:04 -0500 writes:
KRCT> Thank you very much for your help.
KRCT> To the R gurus: It will be better at the future to simplify this
KRCT> options.
KRCT> They are too cumbersome!!!
The ones David showed, yes, are too cumbersome.
There's a variant, which is even a bit more elegant,
but really a small (?) change in R's handling of "symbols" could
make it even more elegant.
I'll talk about that on the dedicated list, R-devel.
Here's the slightly more elegant code (for current versions of R):
plot(1:5,1:5,type="n")
legend("topleft", legend=
c(as.expression( bquote(mu == .(m1)) ),
as.expression( bquote(mu == .(m2)) )), lty = 1:2)
##
## or with subscripts :
##
legend("top", legend =
c(as.expression( bquote(mu[1] == .(m1)) ),
as.expression( bquote(mu[2] == .(m2)) )), lty = 1:2)
##
## or, if you really need to have the subscript as a *variable* as well:
##
i1 <- 11; i2 <- 20
legend("topright", legend =
c(as.expression( bquote(mu[.(i1)] == .(m1)) ),
as.expression( bquote(mu[.(i2)] == .(m2)) )), lty = 1:2)
Martin Maechler, ETH Zurich
KRCT> El mar, 25-08-2009 a las 18:16 -0400, David Winsemius escribió:
>> On Aug 25, 2009, at 5:51 PM, David Winsemius wrote:
>>
>> >
>> > On Aug 25, 2009, at 4:30 PM, Kenneth Roy Cabrera Torres wrote:
>> >
>> >> Hi R users:
>> >>
>> >> I will like to have a legend with math symbols and also with
>> >> the value of a variable.
>> >>
>> >> But I cannot obtain both at the same time (symbol + value of a
>> >> variable):
>> >>
>> >> Here is a reproducible example:
>> >>
>> >> m1<-5
>> >> m2<-12
>> >
>> > I think I am violating a fortune but this "worked":
>> >
>> > plot(1:5,1:5,type="n")
>> > legend
>> > ("topleft",legend=c(eval(substitute( expression(paste(mu,"=",m1)),
>> > list(m1=m1) )) , eval(substitute( expression(paste(mu,"=",m2)),
>> > list(m2=m2) ) )), lty=1:2)
>> >
>> > And efforts at simplification were at least partly successful:
>> >
>> > legend("topleft",legend=c(eval(substitute( expression(mu == m1),
>> > list(m1=m1) )) ,
>> > eval(substitute( expression(mu == m2),
>> > list(m2=m2) ) )),
>> > lty=1:2)
>>
>> And this adds subscripts to the mu's:
>>
>> plot(1:5,1:5,type="n");
>> legend("topleft",
>> legend=c( eval(substitute( expression(mu[i] == m1),
>> list(i=1, m1=m1) )) ,
>> eval(substitute( expression(mu[i] == m2),
>> list(i=2, m2=m2) )) ),
>> lty=1:2)
>>
>>
>> >
>> >
>> >> plot(1:5,1:5,type="n")
>> >> legend
>> >> ("topleft
>> >> ",legend
>> >> =
>> >> c(paste(expression(mu),"=",m1),expression(paste(mu,"=",m2))),lty=1:2)
>> >>
>> >> Thank you for your help.
>> >>
>> >> Kenneth
>> > --
>>
>> David Winsemius, MD
>> Heritage Laboratories
>> West Hartford, CT
>>
KRCT> ______________________________________________
KRCT> R-help at r-project.org mailing list
KRCT> https://stat.ethz.ch/mailman/listinfo/r-help
KRCT> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
KRCT> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list