On Sep 3, 2014, at 10:05 PM, Jinsong Zhao wrote: > On 2014/9/3 21:33, Jinsong Zhao wrote: >> On 2014/9/2 11:50, David L Carlson wrote: >>> The bottom of the expression is set by the lowest character (which can >>> even change for subscripted letters with descenders. The solution is >>> to get axis() to align the tops of the axis labels and move the line >>> up to reduce the space, e.g. >>> >>> plot(1:5, xaxt = "n") >>> axis(1, at = 1:5, labels = c(expression(E[g]), "E", expression(E[j]), >>> "E", expression(E[t])), padj=1, mgp=c(3, .1, 0)) >>> # Check alignment >>> abline(h=.7, xpd=TRUE, lty=3) >> >> yes. In this situation, padj = 1 is the fast solution. However, If there >> are also superscript, then it's hard to alignment all the labels. >> >> If R provide a mechanism that aligns the label in axis() or text() with >> the baseline of the character without the super- and/or sub-script, that >> will be terrific. > > it seems that the above wish is on the Graphics TODO lists: > https://www.stat.auckland.ac.nz/~paul/R/graphicstodos.html > > Allow text adjustment for mathematical annotations which is relative to a > text baseline (in addition to the current situation where adjustment is > relative to the bounding box). >
In many case adding a phantom argument will correct aliognment problems: plot(1:5, xaxt = "n") axis(1, at = 1:5, labels = c(expression(E[g]), E~phantom(E[g]), expression(E[j]), E~phantom(E[g]), expression(E[t]))) abline(h=.7, xpd=TRUE, lty=3) Notice that c(expression(.), ...) will coerce all items separated by commas to expressions, sot you cna just put in "native" expression that are not surrounded by the `expression`-function c(expression(E[g]), E~phantom(E[g]), expression(E[j]) ) #returns # expression(E[g], E ~ phantom(E[g]), E[j]) The tilde is actually a function that converts parse-able strings into R language objects: c(expression(E[g]), E~phantom(E[g]), ~E[j]) -- David. >>> >>> >>> -----Original Message----- >>> From: r-help-boun...@r-project.org >>> [mailto:r-help-boun...@r-project.org] On Behalf Of Jinsong Zhao >>> Sent: Monday, September 1, 2014 6:41 PM >>> To: r-help@r-project.org >>> Subject: [R] depth of labels of axis >>> >>> Hi there, >>> >>> With the following code, >>> >>> plot(1:5, xaxt = "n") >>> axis(1, at = 1:5, labels = c(expression(E[g]), "E", expression(E[j]), >>> "E", expression(E[t]))) >>> >>> you may notice that the "E" within labels of axis(1) are not at the same >>> depth. So the vision of axis(1) labels is something like wave. >>> >>> Is there a possible way to typeset the labels so that they are have the >>> same depth? >>> >>> Any suggestions will be really appreciated. Thanks in advance. >>> >>> Best regards, >>> Jinsong David Winsemius Alameda, CA, USA ______________________________________________ R-help@r-project.org 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.