On Jun 6, 2012, at 7:23 PM, Paul Johnson wrote:

A student entered some data with text characters like epsilon and
alpha.   On her Windows system, the Greek letters did not display
properly in a plot.  There were some ordinary ASCII instead.

I asked her to send me the code so I could test. For me, the plot
looks ok on the screen.

Format1 <- c(320,500,700,1000,500,320,700,500,320)
Format2 <- c(800,1000,1150,1400,1500,1650,1800,2300,2500)
Vowel <- c("u","o", "α", "a","ø", "y", "ε", "e","i")
V1 <- data.frame(Format1,Format2,Vowel)
plot(Format1 ~ Format2, data = V1, type="n")
text(V1$Format2, V1$Format1, labels=V1$Vowel)


On my Debian linux system, the plot shows the Greek letters just fine
in the screen device.

Also on a Mac.

However, I turned on a pdf device to run the same  code and see signs
of trouble.

Try the code on ?points (as suggested on the ?plotmath page:

> pdf("font5.pdf")
> TestChars <- function(sign=1, font=1, ...)
+ {
+    if(font == 5) { sign <- 1; r <- c(32:126, 160:254)
+    } else if (l10n_info()$MBCS) r <- 32:126 else r <- 32:255
+    if (sign == -1) r <- c(32:126, 160:255)
+    par(pty="s")
+    plot(c(-1,16), c(-1,16), type="n", xlab="", ylab="",
+         xaxs="i", yaxs="i")
+    grid(17, 17, lty=1)
+    for(i in r) try(points(i%%16, i%/%16, pch=sign*i, font=font,...))
+ }
>
> TestChars(font=5)
Warning messages:
1: In plot.xy(xy.coords(x, y), type = type, ...) :
  font width unknown for character 0xf0
2: In plot.xy(xy.coords(x, y), type = type, ...) :
  font metrics unknown for character 0xf0
> dev.off()

Despite the single warning, you do get a full set of "greeks". (When I have done this in the past I have added decimal annotations to the plot and taped it to my computer.) But using plotmath seems simple to me, so I generally use it for greeks and only use the type=5 mechanism for special non-plotmath characters.

If you set font=5 inside your text() call, some of your greeks will appear but you may get some surprises.

--
David.

text(V1$Format2, V1$Format1, labels=V1$Vowel)
Warning messages:
1: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'α' in 'mbcsToSbcs': dot substituted for <ce>
2: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'α' in 'mbcsToSbcs': dot substituted for <b1>
3: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 font metrics unknown for Unicode character U+03b1
4: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'α' in 'mbcsToSbcs': dot substituted for <ce>
5: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'α' in 'mbcsToSbcs': dot substituted for <b1>
6: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'ε' in 'mbcsToSbcs': dot substituted for <ce>
7: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'ε' in 'mbcsToSbcs': dot substituted for <b5>
8: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 font metrics unknown for Unicode character U+03b5
9: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'ε' in 'mbcsToSbcs': dot substituted for <ce>
10: In text.default(V1$Format2, V1$Format1, labels = V1$Vowel) :
 conversion failure on 'ε' in 'mbcsToSbcs': dot substituted for <b5>

The alpha and epsilon characters don't appear in the pdf.   I don't
know the proper terminology to describe the situation, thus I don't
know where to start reading. Until very recently, I didn't even know
it was possible to directly enter these characters in Emacs, but I've
learned that part.

I understand you might answer "use plotmath", if if that's the only
workable thing, I will teach her how. But that's a little bit of an up
hill climb (from where we are now standing). It will be a lot more
work for me to teach about expressions and whatnot, so if there is a
direct route from a column of non ASCII characters to a plot that has
those characters in it, I'd be glad to know.

pj

--
Paul E. Johnson


David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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