This works for the original posted question:
n<-5
title <- bquote(bold(paste("Figure ", .(n), ": Plot ",
C[max], " versus
CrCl")))
plot(1, main=title)
However, my problem is that I want to define the text before the value of n
is known.
The idea is that the title is defined ahead, passed to a function that makes
many plots, and n is incremented for each plot.
One way to accomplish this would be to have the constant part of the title
defined ahead:
fff <- bquote(paste("Plot ", C[max], " versus CrCl"))
Unfortunanely, I need to use bquote() or expression() in order to get the
subscript correctly (subscript in the wordprocessing sense = text placed a
little bit lower than normal).
And then add to this the changing part at the time the plot is made (when
the value of n is correct).
The changing part is:
ccc <- bquote(paste("Figure ", .(n), ":"))
Unfortunatley, I need to use bquote() or substitute() here to replace n with
it's numeric value. This can actually be done simplier:
paste("Figure", n,
":")
I just don't know how to concatenate both fff and ccc to create the title.
I am wondering whether it is possible to construct variables or strings that
contain the text plus the special charaters for subscript (square brackets)
and the code for replacement of n by its numeric value, and then evaluate
the combination as part of a substitute() function.
As a try that does not work:
fff <- expression(paste("Plot ",C[max]," versus CrCl"))
# Need
expression() for subscript text
n<-5
ccc <- bquote(paste("Figure ", .(n), ":"))
# Need bquote() for replacement of n; can be done with substitute() also, or
simple: paste("Figure", n, ":")
title <- paste(fff, ccc) ##### Does not work; produces strange results in
plot title #####
plot(1, main=title)
LARGER PEROBLEM:
My larger problem is to construct a number of plots in sets with the same
title per set (fixed part per set) but with the title number incremented
with 1 starting with 1 (variable part). I wanted to define the fixed part of
the title in the main loop but have the figure counter rolling in a function
just before each plot is constructed at which time the figure number is
known.
Very ackward, but this works as the main loop:
numSetsOfPlots <- 1:2
numPlotsPerSet <- 1:3
n <- 0
for (setNo in numSetsOfPlots) {
for (plotInSetNo in numPlotsPerSet) {
n <- n + 1
if (setNo == 1) myTitle <- bquote(paste("Figure ", .(n),
": ",
C[max]))
if (setNo == 2) myTitle <- bquote(paste("Figure ", .(n),
": ", AUC))
plot(1, main=myTitle) # Will be a call to a more complex plot function
readline('Press Enter to proceed...')
}
}
At this point, I can NOT separate a Figure counter from the fixed part of
the title. Both have to be combined in the same main loop. The need for the
subscript for which a PlotMath function is needed causes this problem.
--------------------------
Rene Braeckman, PhD (RMan54)
Irvine, CA
RMan54 wrote:>
> I am trying to create a plot title in R with substitution by a numeric
> variable (Figure number N) within the text which is bold and has a
> subcripted part as well. Here is what I have:
>
> title <- expression(bold(paste("Figure ", N, ": Plot
", C[max], " versus
> CrCL")))
>
> plot(1, main="") # Simple plot for testing
> N <- 5
> mtext(title, line=3, font=2, cex=1.25)
>
> I have the bold part and the subscripted text worked out but how do I
> replace the text "N" in the title by its numeric value (5 in this
> example)? I tried all kinds of stuff with substitute, etc. but can't
> figure it out.
>
> The last 3 lines are actually from a function with title as argument. N is
> internal to the function and changes.
>
> Any help is much appreciated. Thanks.
> Rene
>
>
--
View this message in context:
http://www.nabble.com/Plot-title-with-numeric-variables-tf2631678.html#a7350682
Sent from the R help mailing list archive at Nabble.com.