Envoyé de mon iPhone
> Le 23 avr. 2015 à 18:13, Charles C. Berry <ccbe...@ucsd.edu> a écrit : > >> On Wed, 22 Apr 2015, Rainer M Krug wrote: >> >> >> >> Envoyé de mon iPhone >> >>>> Le 23 avr. 2015 à 04:23, Charles C. Berry <ccbe...@ucsd.edu> a écrit : >>>> >>>> On Wed, 22 Apr 2015, Thomas S. Dye wrote: >>>> >>>> Aloha all, >>>> >>>> Prior to eaa3a761dae, when working in a session, I was able to run this >>>> R source code block without problems: >>>> >>>> ,----------------------------------------- >>>> | #+header: :file r/adze_wt_log.pdf >>>> | #+header: :results output graphics >>>> | #+header: :width 4 :height 3 >>>> | #+begin_src R >>>> | g <- ggplot(x, aes(x = weight)) >>>> | g + geom_histogram(aes(y=..density..)) >>> >>> ## Try this: >>> >>> print( g + geom_histogram(aes(y=..density..)) ) # before rm(g). >>> >>> >>>> | rm(g) >>>> | #+end_src >>>> `----------------------------------------- >>>> >>>> After eaa3a761dae, I get an error and an empty output file. >>> >>> That commit introduced a tryCatch() wrapper for graphics results. >>> >>> You probably know that ggplot (or ggplot2) relies on printing of objects to >>> produce graphics (see R-FAQ 7.22). >>> >>> tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' >>> in your case. But `rm(g)' is not autoprinted, and you get an empty file. >> >> I am not in front of my computer but there must be more, as even before the >> commit there should have been empty file for exactly the same reason. > > `:results output' will return the autoprinted values. Without tryCatch it > works. > > >> Also, the error is strange. Could you send a small reproducable example, so >> that we can see which error you get? Because if you get an error and an >> empty file, an error must be in the tryCatcb block. > > Here are two blocks that differ in using tryCatch. The first produces an > empty, malformed pdf. The second produces a valid pdf. If you comment out the > `invisible()' line in the first, then both will produce similar valid pdf's. > > #+header: :file nada.pdf > #+header: :results output graphics > #+header: :width 4 :height 3 > #+begin_src R > require(ggplot2) > df <- > data.frame(gp = factor(rep(letters[1:3], each = 10)), > y = rnorm(30)) > ggplot(df, aes(x = gp, y = y)) + geom_point() > invisible() > #+end_src > > > #+BEGIN_SRC R :results output > require(ggplot2) > pdf(file="aok.pdf",width=4,height=3) > df <- > data.frame(gp = factor(rep(letters[1:3], each = 10)), > y = rnorm(30)) > ggplot(df, aes(x = gp, y = y)) + geom_point() > invisible() > dev.off() > #+END_SRC > > Sorry I overlooked the :results output graphic header. This combination is, as far as I can see (holiday, sun, no notebook, org or R) not recommended as it will lead to invalid files. Should it actually be valid? I would say these two options contradict each other, as output returns the output from the session ( terminal ) which is not a graphic. Possible a candidate for the new linting library for org, to mark it as an invalid argument combination Cheers, Rainer > > HTH, > > Chuck