I suspect the problem with the PDF device is that as in Ben's code, a 640 by 
640 inches PDF is produced, and the default size of fonts is 12 points, so they 
are too small to be seen.

On Mar 21, 2011, at 5:24 PM, Simon Urbanek <[email protected]> wrote:

> Ben,
> 
> On Mar 21, 2011, at 1:01 PM, Ben Haller wrote:
> 
>> Hi all.  I'm trying to use lattice to make some plots with wireframe().  
>> Ultimately I want to output these plots to PDF files, but I can't get that 
>> to work.  I'm battling a number of issues.  Note the problem is not the lack 
>> of a print() call, I'm aware of that issue.  :->  I'm posting here because I 
>> imagine that the graphics device issues I am seeing are platform-specific.
>> 
>> 1. Using device "jpeg" uses awful-looking results, apparently rendered with 
>> X11.  This is a bit odd, as when I was last doing this sort of thing, I seem 
>> to recall very similar code (which I copied and pasted from where it was) 
>> producing nice-looking images that were not rendered with X11.  Did the 
>> implementation of the jpeg device on Mac change?
>> 
> 
> jpeg() does what you tell it to - see the type argument to pick the 
> appropriate back-end.
> 
> 
>> 2. Using the device "quartz" (not to file, just trying to use it to go to 
>> screen) produces errors:
>> 
>> Mon Mar 21 12:41:40 darwin.local R[25609] <Error>: kCGErrorRangeCheck: 
>> CGSNewWindowWithOpaqueShape: Cannot create window
>> Mon Mar 21 12:41:40 darwin.local R[25609] <Error>: kCGErrorFailure: Set a 
>> breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
>> 
>> This happens quite reproducibly (just do "trellis.device(device="quartz", 
>> width=640, height=640)" in the R console, in fact).
> 
> Well, you're asking for a device size of 17.8 yards x 17.8 yards 
> (width/height is in inches!) - I want to see the screen that can handle that 
> ;). But, it should not crash, admittedly, so I'll add a check to avoid crash 
> on such user errors.
> 
> 
>> I don't know whether lattice is supposed to be compatible with the quartz 
>> device or not, but it certainly doesn't seem to be.  And this error hoses R 
>> so thoroughly that you have to quit and restart it, as far as I can tell, 
>> which makes it a bit annoying; don't say I didn't warn you :->.
>> 
>> 3. Using the device "pdf" produces pdf files that have the correct graphics, 
>> but have no text (axis labels, tick labels).  This is true whether I try to 
>> explicitly specify the font (fontfamily="Times" or fontfamily="HersheySans") 
>> or do not specify any font.
>> 
> 
> I cannot reproduce that - taking the wireframe example from trellis the text 
> appears perfectly normal (pdf() device and Preview to display it).
> 
> If in doubt, see ?pdf and ?pdfFonts for dealing with fonts and the pdf() 
> device -- the fontfamily is not necessarily what matters here.
> 
> 
>> 4. Using no device at all (i.e. no call to trellis.device, just printing my 
>> wireframe object) gives me lovely-looking output, but in a window, of 
>> course, not a file.  This is a bit of a head-scratcher since trying to use 
>> device "quartz" produces errors; what device is lattice using, then, if not 
>> quartz?
> 
> It does use Quartz but with reasonable sizes ;). In the R.app GUI uou can use 
> quartz.save() to save the output of that window WYSIWYG to almost any file 
> format.
> 
> Cheers,
> Simon
> 
> 
> 
>> Anyhow, trying to pass file settings (device and filename) to wireframe() in 
>> par.settings seems to get ignored, as far as I can tell, so I can't build on 
>> this success to generate the files I want.
>> 
>> I've been googling and reading for an hour now, and can't seem to find any 
>> info on this, nor any sample code showing how to get trellis output to a pdf 
>> file (not any sample code that looks substantially different from the 
>> approach I'm taking, that is).  So I'm rather at my wits end.  Anybody?  Can 
>> someone please post working sample code for trellis output to PDF that works 
>> on the current Mac build of R, at a minimum, and then maybe I can figure 
>> this out for myself?
>> 
>> My full code is too hairy to post here, I think, but the nutshell is:
>> 
>> plotFishyWireframe <- function(...)
>> {
>>   ...stuff...
>>   wf_obj <- wireframe(t(zValues), xlab=xlab, ylab=ylab, zlab=zlab, 
>> scales=scales, zlim=zlim, main=list(label=plotTitle, cex=1.5), drape=TRUE, 
>> at=zcuts, col.regions=zcolors, colorkey=TRUE, screen=screen, 
>> perspective=perspective, par.settings=theme)
>>   print(wf_obj)
>> }
>> 
>> ...stuff...
>> 
>> trellis.device(device="pdf", file="foo.pdf", width=640, height=640)
>> plotFishyWireframe(...)
>> dev.off()
>> 
>> Thanks in advance!
>> 
>> Ben Haller
>> McGill University
>> 
>> _______________________________________________
>> R-SIG-Mac mailing list
>> [email protected]
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>> 
>> 
> 
> _______________________________________________
> R-SIG-Mac mailing list
> [email protected]
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to