[Rd] Problems with plot and Quartz device (PR#13744)

Thomas Richardson thomasr at u.washington.edu
Wed Jun 3 20:54:09 CEST 2009


Dear Simon,

Thank you very much for the very rapid response!

> rna is not defined in R, can you, please, supply a reproducible example?

Apologies for including code that could not be run directly.
(I had assumed simulating "similar" data would give the same behaviour, 
but having done more experiments, I see that it is not so simple to get 
this - which makes me very curious about what is really going on!)

I have put the data that I used on the web. I enclose R code below. At 
least on my machine a simple visual comparison of the first column of 
plots in these two quartz windows shows that half of the points in these 
plots, those on the left side of each panel, have disappeared in the 
larger quartz window!

Thanks again.

Best wishes,

Thomas

-----------------------------------------------

# (Hopefully) reproducible code for disappearing pch="." points phenomenon

mydata <- read.table("http://www.stat.washington.edu/tsr/streaking.dat")

quartz()
par(mfrow=c(8,12), mar=c(0,0,0,0), oma=c(0,0,0,0))
for(i in 1:8){ # Row counter
for(j in 1:12){ # Col counter
 	xtmp <- mydata[,1]
 	x <- xtmp[(mydata[,3]==i)&(mydata[,4]==j)]
 	ytmp <- mydata[,2]
 	y <- ytmp[(mydata[,3]==i)&(mydata[,4]==j)]
plot(x,y,xaxt="n",yaxt="n",ann=FALSE,xlim=c(0,100),ylim=c(0,300),pch=".")
}
}

quartz(width=12,height=8)
par(mfrow=c(8,12), mar=c(0,0,0,0), oma=c(0,0,0,0))
for(i in 1:8){ # Row counter
for(j in 1:12){ # Col counter
 	xtmp <- mydata[,1]
 	x <- xtmp[(mydata[,3]==i)&(mydata[,4]==j)]
 	ytmp <- mydata[,2]
 	y <- ytmp[(mydata[,3]==i)&(mydata[,4]==j)]
plot(x,y,xaxt="n",yaxt="n",ann=FALSE,xlim=c(0,100),ylim=c(0,300),pch=".")
}
}


-----------------------------------------------
On Wed, 3 Jun 2009, Simon Urbanek wrote:

> Thomas,
>

>From 
> your description I think I know roughly what's going on (Quartz attempts to 
> snap rectangles on pixel boundaries to prevent malignant anti-aliasing 
> effects in image plots and this may somehow interact with pch='.' since 
> Quartz has no way of knowing that those rectangles are supposed to be 
> glyphs), but I cannot reproduce it.
>
> Thanks,
> Simon
>
>
> On Jun 3, 2009, at 4:45 , tsr at stat.washington.edu wrote:
>
>> Full_Name: Thomas Richardson
>> Version: R 2.9.0 GUI 1.28 Tiger build 32-bit (5395)
>> OS: 10.4.11
>> Submission from: (NULL) (216.254.15.72)
>> 
>> 
>> 
>> I have encountered a problem with points in scatterplots disappearing in a
>> quartz window when it is re-sized (to make it larger).
>> 
>> I am constructing an 8x12 matrix of scatterplots each containing approx 600
>> points.
>> In order to get them in the window I remove the axes etc.,
>> 
>> quartz()
>> par(mfrow=c(8,12), mar=c(0,0,0,0), oma=c(0,0,0,0))
>> for(i in 1:8){ # Row counter
>> for(j in 1:12){ # Col counter 
>> plot(rna$red[(rna$row==levels(rna$row[i])&(rna$col==j)],
>>    rna$tof[(rna$row==levels(rna$row[i])&(rna$col==j)],
>>    xlab="tof",ylab="green",xaxt="n",yaxt="n",
>>    ann=FALSE,xlim=c(0,100),ylim=c(0,300),pch=".")
>> }
>> }
>> 
>> Here is the problem:  how many data points actually appear in the quartz 
>> window
>> on my screen is highly sensitive to the width and height specified. If I 
>> specify
>> a different width and height for the quartz window e.g.
>> quartz(width=8,height=8), OR if I resize the window with the cursor then 
>> points
>> disappear in certain (x-axis) ranges across all the plots in some columns. 
>> These
>> bands in which points disappear are the same for all plots in a given 
>> column,
>> and can be very wide - making a lot of points disappear.
>> 
>> (The visual effect is to make it look as if there are clearly defined 
>> vertical
>> white lines going across the scatterplots - though the black lines 
>> enclosing
>> each plot are not broken).
>> 
>> The problem seems to disappear with other plotting symbols e.g. pch="+" 
>> (but
>> then I end up with crowded plots). So I guess it might be related to the
>> "special treatment" of "." described on help(points) ??
>> ---
>> Value pch="." (equivalently pch = 46) is handled specially. It is a 
>> rectangle of
>> side 0.01 inch (scaled by cex).
>> ---
>> 
>> I find this behaviour unnerving: the (resized) plots made it look as if 
>> there
>> was a lot of structure in the data, but on closer inspection it turned out 
>> to be
>> entirely a consequence of the quartz device and plot function!
>> 
>> I can't imagine that this behaviour is intended - even if it were intended 
>> to
>> suppress points (like some axis labels) - it seems strange that enlarging 
>> the
>> window makes points disappear. (I also tried setting dpi=72 in quartz(), 
>> but
>> this did not fix the problem).
>> 
>> Thanks in advance.
>> 
>> Thomas
>> 
>> ------------------------------------------------------
>> sessionInfo()
>> R version 2.9.0 (2009-04-17)
>> i386-apple-darwin8.11.1
>> 
>> locale:
>> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>> 
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
>> 
>



More information about the R-devel mailing list