[R] Using windows() and jpeg()

Duncan Murdoch murdoch at stats.uwo.ca
Mon Nov 19 23:40:20 CET 2007


On 19/11/2007 5:06 PM, Irina Burmenko wrote:
> Thank you very much for your help, Duncan.
> 
> I do have another question, unrelated to the first one.  I need to plot points on the graph, but I want points to be letters instead of symbols.  Ideally, I would like to have circles with letters 'Rx' inside, for example.  Is that possible?  If not, is there a way to simply have Rx as a symbol without the circle?  When I tried to do that, only the first letter 'R' gets displayed.  Same thing with the legend.  Here is the sample code.  Any help would be greatly appreciated.
> 
> x<-c(1:7)
> y1 <- c(20,NA,NA,20,20,NA,20)
> y2 <- c(40,40,NA,NA,40,40,NA)
> y3 <- c(NA,60,60,NA,NA,60,60)
> y4 <- c(80,NA,NA,80,80,NA,80)
> windows(width=6.25, height = 3.75)
> par(pin=c(3.5,1.5),bty="l")
> par(mar=c(2.5,4.1,2.2,10.5))
> plot(x,y4,type="n",xlim=c(1,7),ylim=c(0,100),xlab="",xaxt="n")
> axis(1, at=1:7, labels = FALSE, tcl = -0.2)
> mtext("Week of",side=1, cex = 0.8,line=1.0)
>  
> points(x,y1,pch="HV",bg="blue",col="blue",cex=0.5)
> points(x,y2,pch="ER",bg="orange",col="orange",cex=0.5)
> points(x,y3,pch="Rx",bg="red",col="red",cex=0.5)
> points(x,y4,pch="Sx",bg="green",col="green",cex=0.5)
> par(xpd=TRUE)
> legend(8,40, c("hospital visit", "ER visit","medication change", 
> "symptoms reported"), col = c("blue","orange","red","green"), text.col= "black",
> lty = c(-1, -1, -1,-1), pch = c("H","E","R","S"), bty="n",cex=0.85)

To get multiple letters plotted, use the text() function rather than 
points().  For example,

text(x,y1,labels="HV",col="blue",cex=0.5,adj=c(0.5,0.5))

Duncan Murdoch

> 
> Irina
> 
> 
> ----- Original Message ----
> From: Duncan Murdoch <murdoch at stats.uwo.ca>
> To: Irina Burmenko <iburmen at yahoo.com>
> Cc: r-help at r-project.org
> Sent: Monday, November 19, 2007 4:54:13 PM
> Subject: Re: [R] Using windows() and jpeg()
> 
> On 19/11/2007 3:09 PM, Irina Burmenko wrote:
>> Hello,
>>
>> I have the following question, which I haven't been able to resolve after days of trying.  I used to save my plots as jpegs using the savePlot command.  However, that seems to result in lost resolution.  So now I'm trying to use the jpeg( ) function, but am having trouble because it seems to be incompatible with the windows (width=, height=) command.   It's important for me to be able to specify the window size as well as other parameters.  Here is the sample code:
>>
>> jpeg(filename="myplot.jpg",quality=100)
>> windows(width=6.25, height = 3.75)
> 
> The jpeg() command should *replace* the windows() command.  They both
> open new graphics devices.  One problem you'll have is that jpeg takes 
> dimensions in pixels by default; if you want to express it in inches, 
> you need to say so, and also say what resolution you're assuming.  For 
> example,
> 
> jpeg(filename="myplot.jpg",quality=100,width=6.25, height = 3.75, 
> units="in",res=96)
> 
> for 96 dpi resolution.
> 
> Duncan Murdoch
> 
> 
>> par(pin=c(3.5,1.5),bty="l")
>> par(mar=c(2.5,4.1,2.2,10.5))
>> x<-c(1,2,3)
>> y<-c(4,5,6)
>> plot(x,y,"b")
>> dev.off()
>>
>> Using these commands results in an empty plot being saved.  However, skipping lines 2-4 saves the graph, but, of course, without the formatting, which is important to me.  Any help would be greatly appreciated.
>>
>> Irina
>>
>>
>>      ____________________________________________________________________________________
>> Never miss a thing.  Make Yahoo your home page. 
>>
>>     [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at 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.
> 
> 
>       ____________________________________________________________________________________
> Never miss a thing.  Make Yahoo your home page. 
> http://www.yahoo.com/r/hs



More information about the R-help mailing list