Thanks, Thomas.
It is indeed a very interesting phenomenon. Apparently the discrete
structure in the data interacts with the way the data are plotted on a
very small scale. I have committed a work-around - it forces
rectangles to retain at least their original width/height when
snapping to pixels causes it to shrink to 0 (i.e. the width or height
is < 0.5 pixels).
Thanks,
Simon
On Jun 3, 2009, at 14:54 , Thomas Richardson wrote:
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 , t...@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel