# [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 20:09:08 CEST 2019

```Would be nice to put those two way examples in the documentation of the
function 'expression' and 'bquote' in the next R version (we are in the
base) for other users  ;-) I am sure many would enjoy.

Le 20/10/2019 à 19:15, Patrick Giraudoux a écrit :
> Great !  You have helped to solve a problem on which I was sweating
>
> 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
>>>         http://www.R-project.org/posting-guide.html
>>>         and provide commented, minimal, self-contained, reproducible
>>>         code.
>>>
>>
>

[[alternative HTML version deleted]]

```