Inches the the default for most graphics devices, except (apparently) the jpeg() device and friends. x11, quartz, pdf & postscript all specify their width and height in inches by default. I have no idea why jpeg has opted to make this non-standard.
On Mon, Mar 21, 2011 at 1:13 PM, Ben Haller <[email protected]> wrote: > Oh! I thought trellis.device always took a size in pixels; certainly it > does for the jpeg type! I guess it is device-dependent? OK, I will go try > that. :-> > > Thanks! > > Ben Haller > McGill University > > > On Mar 21, 2011, at 1:39 PM, Yan Zhou wrote: > >> 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 > -- Byron Ellis ([email protected]) "Oook" -- The Librarian _______________________________________________ R-SIG-Mac mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-mac
