On Feb 18, 2011 11:02 PM, "Deepayan Sarkar" <deepayan.sarkar@gmail.com>
wrote:
>
> On Fri, Feb 18, 2011 at 11:04 PM, Elliot Joel Bernstein
> <elliot.bernstein@fdopartners.com> wrote:
> > I'm trying to use lattice graphics to produce some small plots for
inclusion in a LaTeX file. I want the LaTeX fonts to be used in the plots,
but to be scaled down to match the size of the plot. I have written the
following code to apply a scaling factor to all the "cex" and "padding"
entries in the trellis parameters, but there is still a large white space
between the key and the top of the plot area. Does anyone know how I can get
rid of that (or if I'm going about this all wrong and there's a much cleaner
way)?
> >
> > ## ------ ##
> > ## test.R ##
> > ## ------ ##
> >
> > require(tikzDevice)
>
> I have not (yet) used tikzDevice, so don't know what impact it will
> have, but in my experience with pdf(), it's usually more effective to
> create a larger file and then scale it when including it in the .tex
> file.
>
> -Deepayan
>
> > require(lattice)
> >
> > rescale.pars <- function(cex.factor     = 0.5,
> >                         padding.factor = 0.25,
> >                         pars           = trellis.par.get()) {
> >
> >  result <- NULL
> >  for (i in seq_along(pars)) {
> >
> >    if (names(pars)[[i]] == "cex") {
> >
> >      if (is.null(result)) {
> >        result <- list()
> >      }
> >      result <- c(result, cex=cex.factor*pars[[i]])
> >
> >    } else if (grepl("padding$", names(pars)[[i]])) {
> >
> >      if (is.null(result)) {
> >        result <- list()
> >      }
> >      eval(parse(text=sprintf("result <- c(result,
%s=padding.factor*pars[[i]])", names(pars)[[i]])))
> >
> >    } else if (inherits(pars[[i]], "list")) {
> >
> >      temp <- rescale.pars(cex.factor, padding.factor, pars[[i]])
> >      if (!is.null(temp)) {
> >        result[[names(pars)[[i]]]] <- temp
> >      }
> >
> >    }
> >  }
> >
> >  return (result)
> > }
> >
> > x <- 1:100
> > y <- cumsum(rnorm(length(x), 1, 10))
> > z <- cumsum(rnorm(length(x), 1, 20))
> >
> > tikz("test-plot.tex", width=2, height=2)
> >
> > xyplot(y + z ~ x,
> >       main = "My Plot",
> >       xlab = "x",
> >       auto.key=list(text=c("Line 1", "Line 2"), points=FALSE,
lines=TRUE),
> >       grid = TRUE,
> >       par.settings = rescale.pars())
> >
> > dev.off()
> >
> > ## ---------- ##
> > ## END R CODE ##
> > ## ---------- ##
> >
> > Thanks.
> >
> > - Elliot
> >
> > -----------------------------
> > Elliot Joel Bernstein, Ph.D. | Research Associate | FDO Partners, LLC
> > 134 Mount Auburn Street | Cambridge, MA | 02138
> > Phone: (617) 503-4619 | Email: elliot.bernstein@fdopartners.com
> >
> > ______________________________________________
> > R-help@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >

Deepayan -

Thank you for your reply. In the past I've generally done what you suggest,
but I'm trying to use tikz so the graphics can inherit the fonts used in the
LaTeX document. Is there a way to do that with the pdf device?

Thanks.

- Elliot

	[[alternative HTML version deleted]]

