[R] graph label greek symbol failure

e-letter inpost at gmail.com
Wed Aug 19 18:06:35 CEST 2009


On 19/08/2009, Gavin Simpson <gavin.simpson at ucl.ac.uk> wrote:
> On Wed, 2009-08-19 at 14:20 +0100, e-letter wrote:
>> On 18/08/2009, Gavin Simpson <gavin.simpson at ucl.ac.uk> wrote:
>> > On Tue, 2009-08-18 at 13:06 +0100, e-letter wrote:
>> >> On 17/08/2009, Michael Knudsen <micknudsen at gmail.com> wrote:
>> >> > On Mon, Aug 17, 2009 at 12:51 PM, e-letter <inpost at gmail.com> wrote:
>> >> >
>> >> >> I have tried to add the delta (δ) symbol to the y axis label and the
>> >> >> result is &D, using the command:
>> >> >>
>> >> >> ...ylab="δt"...
>> >> >
>> >> > Try ylab = expression(delta*t) instead.
>> >> >
>> >> This does not work, the result is
>> >> expression(delta*t)
>> >
>> > It works for the rest of us who suggested this.
>> >
>> > plot(1:10, ylab = expression(delta*t))
>> >
>> True, but the following commands fails:
>> plot(1:10,ylab="temperature expression(delta*t)")
>> plot(1:10,ylab="temperature" expression(delta*t))
>> Error: syntax error, unexpected SYMBOL, expecting ',' in
>> "plot(1:10,ylab="temperature" expression"
>>
>> So I want to be able to have 'δt' and 'temperature δt' as a y-axis label.
>
> Ah, but you never said that. We aren't mind readers you know ;-)
>
> What you need is an expression that will, when used, give you a text
> label containing "Temperature δt". What you have done is create a
> character string of the literal "...expression(delta*t)" which is of
> course why it is printed as the label - after all , you asked R to do
> this.
>
> I suggest you read the plotmath help page, accessed via:
>
> ?plotmath
>
> executed at the prompt.
>
> I found this expression stuff complicated when I first started out,
> until I realised that whatever gets passed to expression(....) has to be
> a syntactically valid R command. So for your particular example we need:
>
> plot(1:10, ylab = expression(Temperature ~ delta*t))
>
> Temperature is treated as the character string "Temperature"; the "~"
> means leave some space between the bits either side of "~"; delta is a
> special name that will get replaced by the relevant glyph; the "*"
> juxtaposes delta and "t", ie places them next to one another without any
> space in between.
>
Being familiar with latex, I interpret your description of the tilde
(~) as non-breaking space, therefore I used the command:
plot(1:10,ylab=expression(temperature~delta*t))
to give me the result I wanted; in other words the space characters
are not needed between temperature,~ and delta in your suggestion.

Thank you.




More information about the R-help mailing list