[R] using a variable and a superscript in a legend

Patrick Giraudoux p@tr|ck@g|r@udoux @end|ng |rom un|v-|comte@|r
Sun Oct 20 19:15:52 CEST 2019


Great !  You have helped to solve a problem on which I was sweating 
(sporadically, however) since months...

Thanks,

Best,


Le 20/10/2019 à 18:29, Bert Gunter a écrit :
> The legend must be "an expression vector."
> c("Sans renard",bquote(.(densren) (ind./km)^2))   is not because the 
> first element is a character string.
>
> This works:
>
> plot(1:100,1:100,type="n")
>    legend(list(x=0,y=100),legend=c(expression("Sans 
> renard"),bquote(.(densren) 
> (ind./km)^2)),lty=c(1,2),col=c("black","red"),bty="n")
>
> Cheers,
> Bert
>
>
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along 
> and sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
> On Sun, Oct 20, 2019 at 9:02 AM Patrick Giraudoux 
> <patrick.giraudoux using univ-fcomte.fr 
> <mailto:patrick.giraudoux using univ-fcomte.fr>> wrote:
>
>     Thanks Bert and Peter,
>
>     Yes Bert, I was aware of the legend() function syntax, and just
>     quoting the legend argument within the function.
>
>     However, Bert and Peter, I do not understand why it works with
>     your absolutely reproducible examples and not in the slightly (not
>     so slightly apparently) different context where I used it...
>
>     densren=1.25
>     plot(1:100,1:100,type="n")
>     legend(list(x=0,y=100),legend=c("Sans renard",bquote(.(densren)
>     (ind./km)^2)),lty=c(1,2),col=c("black","red"),bty="n")
>
>     densren=1.25
>     plot(1:100,1:100,type="n")
>     legend(list(x=0,y=100),legend=c("Sans renard",bquote(.(densren) *
>     " ind."/"km"^2)),lty=c(1,2),col=c("black","red"),bty="n"
>
>     Probably because the result of bquote() is concatenated in a
>     character vector, but how to deal with this ?
>
>     Best,
>
>     Patrick
>
>
>
>     Le 20/10/2019 à 16:42, Bert Gunter a écrit :
>>     Assuming you are using base graphics, your syntax for adding the
>>     legend appears to be wrong.
>>     legend() is a separate function, not a parameter of plot.default
>>     afaics.
>>
>>     The following works for me:
>>
>>     > densren <- 1.25
>>     > plot(1:10)
>>     > legend (x="center", legend =bquote(.(densren) (ind./km)^2))
>>
>>     See ?legend
>>
>>     Bert Gunter
>>
>>     "The trouble with having an open mind is that people keep coming
>>     along and sticking things into it."
>>     -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>
>>
>>     On Sun, Oct 20, 2019 at 5:30 AM Patrick Giraudoux
>>     <patrick.giraudoux using univ-fcomte.fr
>>     <mailto:patrick.giraudoux using univ-fcomte.fr>> wrote:
>>
>>         Dear listers,
>>
>>         I am trying to pass an expression inlcuding a variable and a
>>         superpscript to a legend. What I want to obtain is e.g. with
>>         densren = 1.25
>>
>>         1.25 ind./km^2
>>
>>         I have tried many variants of the following:
>>
>>         legend=bquote(.(densren) (ind./km)^2)
>>
>>         but if not errors, do obtain
>>
>>         1.25 (ind./km^2)
>>
>>         hence not what I want (no parenthesis, 2 in superscript...)
>>
>>         Any idea about a correct syntax to get what I need ?
>>
>>         Best,
>>
>>         Patrick
>>
>>
>>                 [[alternative HTML version deleted]]
>>
>>         ______________________________________________
>>         R-help using r-project.org <mailto:R-help using 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.
>>
>


	[[alternative HTML version deleted]]



More information about the R-help mailing list