You're right. I was worried that c() would create a character vector and
deparse the unevaluated call in the process, but apparently it is an implicit
as.character _inside_ legend that is doing us in. (I can't offhand see where it
is happening, but there might be scope for improvement if legend(
To continue down this rabbit hole ...
Actually, both solutions are the same; Peter's is just more general than
mine, as it works more conveniently for more lines in the legend.
However, note that:
> class(c("Sans renard", bquote(.(densren) (ind./km)^2)))
[1] "list" # by coercion
so it does not
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 prob
Now, we have two solutions working. This is great since I did not find
any example of the kind searching r-help archives and google...
Thanks !
Le 20/10/2019 à 19:31, Peter Dalgaard a écrit :
It's tricky, but I think what you want is
legend(list(x=0,y=100),
legend=as.expression(list(
It's tricky, but I think what you want is
legend(list(x=0,y=100),
legend=as.expression(list(
"Sans renard",
bquote(.(densren) * " ind."/"km"^2)
)),
lty=c(1,2),col=c("black","red"),bty="n")
Generally, if you want a vector of unevaluated expressions, you need an object
of mode "
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 el
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),co
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) diff
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 ?lege
Thanks Eric. I got it too already (and already tried some variations
based on it), but to my understanding it does not include a variable
whose contents is used in the expression as in the case submitted...
Le 20/10/2019 à 14:56, Eric Berger a écrit :
> I did a Google search on
>
> R plot super
I did a Google search on
R plot superscript in legend
and the first search result was
https://stackoverflow.com/questions/20453408/superscript-r-squared-for-legend
which looks like it might address your question.
On Sun, Oct 20, 2019 at 3:30 PM Patrick Giraudoux <
patrick.giraud...@univ-fcomte
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^
12 matches
Mail list logo