[R] italics letter in roman string
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Mar 18 14:15:55 CET 2007
On 3/18/2007 8:56 AM, Chabot Denis wrote:
> Thank you Marc, Jim and Gabor,
>
> I like the solution with "expression", nice and simple. Gabor, your
> solution did not work, probably just a matter of putting the text
> inside an expression?
>
> However it would be nice if the help system pointed to it. A search
> on "italics" brought me nothing, one on "italic" gave me 4 hits, none
> useful. And reading the help on plotmath, I found no mention of italic
> (). Where can we suggest additions to the help system?
The R-devel list is the best place to make suggestions like that if
you're talking about documentation in base packages. Please submit
patches to the source from
https://svn.r-project.org/R/trunk
Package documentation is in src/library/*/man/*.Rd, the manuals are in
doc/manual/*.texi. There are also bits and pieces of other
documentation (FAQs, etc.) elsewhere.
Suggestions about contributed packages (including Recommended ones)
should be sent to the package maintainer and/or author.
Duncan Murdoch
>
> I must plead guilty to have forgotten a RSiteSearch before posting. I
> just did and I think I might have figured out something out there.
> But your answers were nice and to the point!
>
> Cheers,
>
> Denis
> Le 07-03-17 à 23:30, Marc Schwartz a écrit :
>
>> On Sat, 2007-03-17 at 21:56 -0500, Marc Schwartz wrote:
>>> On Sat, 2007-03-17 at 22:01 -0400, Chabot Denis wrote:
>>>> Hi,
>>>>
>>>> As part of the legend to a plot, I need to have the "n" in italics
>>>> because it is a requirement of the journal I aim to publish in:
>>>> "This study, n = 3293"
>>>>
>>>> Presently I have:
>>>> legend(20, 105, "This study, n = 3293", pch=1, col=rgb(0,0,0,0.5),
>>>> pt.cex=0.3, cex=0.8, bty="n")
>>>>
>>>> I suppose I could leave a blank in place of the "n", then issue a
>>>> text call where I'd use font=3 for a single letter, "n". But it will
>>>> be tricky to find the exact location to use.
>>>>
>>>> Is there a way to switch to font=3 just for one letter within a
>>>> string?
>>>>
>>>> Thanks in advance,
>>>>
>>>> Denis Chabot
>>> Denis,
>>>
>>> Try something like this:
>>>
>>> plot(20, 100)
>>>
>>> leg <- legend(20, 105, "This study, = 3293", pch = 1,
>>> col=rgb(0,0,0,0.5), pt.cex = 0.3, cex = 0.8,
>>> bty = "n")
>>>
>>> text(leg$text$x + strwidth("This study, ", cex = 0.8),
>>> leg$text$y, "n", font = 3, cex = 0.8, adj = c(0, 0.5))
>>>
>>>
>>> Note that legend returns a list structure, which contains the x and y
>>> coordinates of the start of the text strings that are plotted. So
>>> I get
>>> that information for your line of text.
>>>
>>> Next, I use strwidth() to calculate, in user coordinates, the
>>> length of
>>> the characters preceding the 'n', including spaces. We add that
>>> distance to the x coordinate returned in the legend call.
>>>
>>> I also use the 'adj' argument in the text() call, so that it is in
>>> synch
>>> with the same parameters in legend() for alignment with the other
>>> letters.
>>>
>>> See ?strwidth for more information.
>>>
>>> You may have to tweak the horizontal spacing of the 'n' a bit,
>>> depending
>>> upon the rest of your graph.
>> Denis,
>>
>> I thought of another approach, using plotmath.
>>
>> First, create a text expression, specifying that the 'n' should be
>> italicized. Then use that expression in the legend() call.
>>
>> txt <- expression(paste("This study, ", italic(n), " = 3293"))
>>
>> plot(20, 100)
>>
>> legend(20, 105, txt, pch = 1, col=rgb(0,0,0,0.5),
>> pt.cex = 0.3, cex = 0.8, bty = "n")
>>
>>
>> That's easier that the first solution. See ?plotmath
>>
>> HTH,
>>
>> Marc Schwartz
>>
>>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> 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.
More information about the R-help
mailing list