On 2012-09-16 08:32, David Winsemius wrote:

On Sep 16, 2012, at 4:40 AM, peter dalgaard wrote:


On Sep 16, 2012, at 07:48 , David Winsemius wrote:


On Sep 15, 2012, at 7:15 PM, mcg wrote:

Hello R-users,

I would like to use subscript in chemical formulas for the different treatments 
in a boxplot.
Fot title, xlab and ylab sub- and superscript is no problem, but for the 
different treatments of the following example I cannot get subscript.

Example:
weight <-  c(6,5,7,2,7,3,9,4,2,7,8,9,2,3,4,5)
treatments <- as.factor(rep(c('Control', 'P2O5','K2SO4','CaSO4'),4))
data <- data.frame(treatments,weight)
boxplot(data$weight~data$treatments)

If I apply expression(P[2]...) I get  "unimplemented type 'expression' in 
'HashTableSetup' ".
If there is a solution for this in base graphics or ggplot please let me know.


?plotmath
boxplot(data$weight~data$treatments, xaxt="n")
axis(1, 1:4, labels=expression(Control, P[2]*O[5], K[2]*SO[4], CaSO[4]) )

I will admit that the need for the "*"'s was not apparent to me until I used 
the initial example as a starting point and made incremental changes until I gotsuccess. 
So I am not suggesting that RTM should have been enough.

Just remember that plotmath is designed to handle math expressions like 
alpha+beta*x and the logic should follow. For the same reason, although it 
makes little or no visual difference, you really should say

What I did not remember was that there had been prior rhelp questions about how 
to create a proper prefixed-superscript such as might be use to represent 
different isotopes of the same element and and solution had been to use  a 
postfixed subscript on a phantom() expression.

plot(1,1, xlab=expression(phantom()^32m*K) ) attempted but not successful.

plot(1,1, xlab=expression(phantom()^32*K) )
plot(1,1, xlab=expression(phantom()^32m*K) )
Error: unexpected symbol in "plot(1,1, xlab=expression(phantom()^32m"
plot(1,1, xlab=expression(phantom()^"32m"*K) )  # succeeds

I think what PD was trying to say is that a preferred solution would be:

 plot(1,1, xlab=expression(phantom()^{32*m}*K) )

Peter Ehlers


There is some sort of parsing that splits the numeric from the alpha characters even with 
no spaces intervening, so you need to "protect" the 32m with quotes to get 
error-free interpretation.



labels=expression(Control, P[2]*O[5], K[2]*S*O[4], Ca*S*O[4])

(Plotmath as of now doesn't actually do anything about kerning and such, but 
TeX afficionados will know that $different$ is quite different from 
\textit{different}, the former not being a word but identical to $dif^2e^2rnt$)

--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School



David Winsemius, MD
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.


______________________________________________
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.

Reply via email to