Skip to content
Back to formatted view

Raw Message

Message-ID: <AANLkTikJ-C0jWAXJ_37-_U=vZPLiCXYJWrHK0YWKk0cq@mail.gmail.com>
Date: 2011-01-01T22:08:35Z
From: Gabor Grothendieck
Subject: Plot symbols: How to plot (and save) a graphic with symbols originating from a table
In-Reply-To: <4d1f87c61d0ce_18e310c20e74197@weasel15.tmail>

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