Folkes, Michael
2007-Sep-24 21:55 UTC
[R] parse in text function of plots, confusing behaviour
HI all, I'm failing to understand why the following is happening. In this plot I rely on two text functions both using parse. The second one works properly by writing a gamma symbol 5 times, the first one only works properly four times. The only difference is that I add a string to the paste function of that which does work properly. Why does it behave like this? thanks so much! Michael Folkes plot(1,1,type='n',ylim=c(-2,2)) for(gam in seq(-1,.25,length=5)){ #doesn't repeat gamma symbol properly text(.8,gam,parse(text=paste("gamma",gam,sep='')),cex=.75,adj=0) # however this works if an additional string is included in the paste function text(1,gam,parse(text=paste("gamma","~hi",gam,sep='')),cex=.75,adj=0) } [[alternative HTML version deleted]]
Duncan Murdoch
2007-Sep-24 22:32 UTC
[R] parse in text function of plots, confusing behaviour
On 24/09/2007 5:55 PM, Folkes, Michael wrote:> HI all, > I'm failing to understand why the following is happening. > In this plot I rely on two text functions both using parse. The second one works properly by writing a gamma symbol 5 times, the first one only works properly four times. The only difference is that I add a string to the paste function of that which does work properly. Why does it behave like this? > thanks so much! > Michael Folkes > > > plot(1,1,type='n',ylim=c(-2,2)) > for(gam in seq(-1,.25,length=5)){ > #doesn't repeat gamma symbol properly > text(.8,gam,parse(text=paste("gamma",gam,sep='')),cex=.75,adj=0) > > # however this works if an additional string is included in the paste function > text(1,gam,parse(text=paste("gamma","~hi",gam,sep='')),cex=.75,adj=0) > }Take a look at what you're trying to plot: > for (gam in seq(-1, 0.25, length=5)) { + print(parse(text=paste("gamma",gam,sep=''))) + } expression(gamma-1) attr(,"srcfile") <text> expression(gamma-0.6875) attr(,"srcfile") <text> expression(gamma-0.375) attr(,"srcfile") <text> expression(gamma-0.0625) attr(,"srcfile") <text> expression(gamma0.25) attr(,"srcfile") <text> In the first 4 cases, it's "gamma - value", while the last one is "gammavalue". You probably want something like the bquote example on the ?plotmath page, e.g. > for (gam in seq(-1, 0.25, length=5)) { + text(1, gam, bquote(paste(gamma," ",.(gam)))) + } Duncan Murdoch