However, your suggestion of performing a replicatible experiment is
useful and an exact replica of my problem occurs in it. From MASS 4th
ed. page 304.
data(iris3); ir <- rbind(iris3[,,1], iris3[,,2], iris3[,,3])
ir.species <- factor(c(rep("s", 50), rep("c", 50), rep("v", 50)))
ir.pca <- princomp(log(ir), cor = T)
ir.pc <- predict(ir.pca)
plot(ir.pc[, 1:2], type = "n", xlab = "first principal component",
ylab = "second principal component")
Apparently good plot (to screen). The 150 data points and three
species appear to be there.
Now to PostScript.
postscript("irpca.eps", horizontal=FALSE, onefile=TRUE, height=6,
width=6, pointsize=8, paper="special")
plot(ir.pc[, 1:2], type = "n", xlab = "first principal component",
ylab = "second principal component")
text(ir.pc[,1:2], labels = as.character(ir.species))
Problem. Only 21 "s" points shown -- over on left hand side of the plot.
In my original problem also, the plot was limited 21 points.