Plot symbols: How to plot (and save) a graphic with symbols originating from a table
On Sat, Jan 1, 2011 at 3:00 PM, Victor F Seabra <vseabra at uol.com.br> wrote:
? Dear all,
? Please, I have a doubt regarding symbols plotting
? when the data originates from a table
? (i.e. is not manually fed into the "text" function)
? Please, see below:
? I have a tab delimited file called table1.txt with 4 columns.
? (I wasn't sure on how to attach the table to this post, so I included the
? data below)
? ypos animal var1 var2
? 5 cat gina <= lady gina \u2264 lady
? 7 dog bill >= tony bill \u2265 tony
? 9 fish dude <= bro dude \u2264 bro
? # I load in the data:
? table1<-read.table("table1.txt", header=TRUE, sep="\t")
? #
? # If I take a look at the table
? table1
? # I realize that \u2264 was replaced by \\u2264
? #
? # So, when I plot the data
? plot(1:1,col="white",xlim=c(1,10),ylim=c(1,10),ylab="",axes=FALSE,xlab="")
? text(y=table1$ypos,x=2,table1$animal)
? text(y=table1$ypos,x=4,table1$var1)
? text(y=table1$ypos,x=8,table1$var2)
? #
? # Instead of "<=" or ">=", the text string "\u2265" is plotted
? # This first problem can be fixed by manually erasing the extra "\" on var2
? fix(table1)
? #
? # However, while saving the graph to a ps file, the "<=" sign is replaced by
? "..."
? postscript("graph1.ps", width = 22, height =
? 11.5,pointsize=24,paper="special",bg="transparent")
? plot(1:1,col="white",xlim=c(1,10),ylim=c(1,10),ylab="",axes=FALSE,xlab="")
? text(y=table1$ypos,x=2,table1$animal)
? text(y=table1$ypos,x=4,table1$var1)
? text(y=table1$ypos,x=8,table1$var2)
? dev.off()
? #
? #
? # A solution would be to plot "<" or ">" instead of "<=" and ">=" signs
? # and then plot an hifen under the "<" or the ">" sign.
? # This approach fixes both problems, but is hard to do and
? # very difficult to automate
? #
? #Please, does anyone know a better way?
? #thanks in advance
? #
? #Victor Faria Seabra, MD
? #vseabra@ uol.com.br
Try this which illustrates the idea without all the distraction of the
inessential elements:
plot(0, main = eval(parse(text = sprintf("'%s'", "a\\u2264b"))))
That is, within the context of your post the last line would be replaced with:
text(y=table1$ypos, x = 8, eval(parse(text = sprintf("'%s'", table1$var2))))
Whether this works may depend on the OS and device that you use -- it
does work on my Windows Vista system.
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com