emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Org babel R Help


From: Dan Davison
Subject: Re: [Orgmode] Org babel R Help
Date: Sun, 21 Mar 2010 10:19:13 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Graham Smith <address@hidden> writes:

> Joseph/Dan
>
>>>> 2) Width/Height exports for R graphics output. Do they work?
>>>>
>>>> I've tried a lot of combinations of :width and :height as exports, and
>>>> they don't seem to work at all. I've tried small numbers (1-10), large
>>>> numbers (100-2000) and numbers prefixed by "cm" with no luck.
>>>
>>> Hmm, I'm not seeing a problem here. It works for me with both png and
>>> pdf output. E.g.
>>>
>>> #+begin_src R :file z.pdf :width 20 :height 40 :exports both
>>> plot(1:10)
>>> #+end_src
>>
>>> What image format (i.e. R graphics device) are you using?  Can you post
>>> an example block that is not working? The values for :width and :height
>>> will be passed straight on to the graphics device, so their meaning
>>> depends on which graphics device is being used in R.
>>
>> I'm trying the code you posted with the latest org-mode from ubuntu and
>> getting nothing in my results if I use png.

Hi Joseph,

I also get nothing with png:
,----
| #+begin_src R :file z.png :width 20 :height 40 :exports both
`----
If you do C-c C-c on the block, you should get an error buffer
explaining why
,----
| Error in plot.new() : figure margins too large
| Calls: write.table ... inherits -> main -> plot -> plot.default -> plot.new
| Execution halted
`----
In R, for png(), jpg() et al, the default units for width and height are
pixels. For pdf() and ps() width and height are in inches. So while 20
and 40 are sensible values for pdf they are not for png.

>> If I use pdf, I get a really
>> tiny chart which is incomprehensible. Width and height seem to work
>> randomly, as using 20:40 work with pdf (although tiny), but 100,100 do not
>> work at all.

What do you mean when you say "100,100 do not work at all"? What I get
is something which looks very much like a blank plot inserted into the
pdf. However if you look closely, it is in fact a scaled down version of
a large pdf (100 inches by 100 inches). The axes, plotting characters
and label annotation are very hard to see because they have not been
scaled up and are tiny relative to the plot dimensions.

>>
>> It only works correctly if I use the #+attr_latex: width=Xcm and omit the
>> width and height.
>
> Based on what is happening here with me on Ubuntu 9.10, R 2.10 and orgmode 
> 6.34.
>
> The  ":file z.pdf :width 20 :height 40 :exports both"  is affecting
> the size of the graphic that R produces. If you open x.pdf directly
> you will find that it changes size as expected.
>
> BUT regardless of the size of the z.pdf, Latex defaults to a fixed,
> and tiny, standard size.  Unless you give an explicit latex command
> #+attr_latex: width=Xcm
>

Thanks Graham for the further explanation.

So I believe we do understand the situation. The question is how do we
improve it. First the facts:

1. With png R graphics :width and :height specify pixel dimensions and
   must be sensible for the graphic to be produced without an R error.
2. With pdf R graphics, :width and :height are in inches. However, the
   pdf output produced by org rescales the resulting image down to a
   small default size.

So as Graham has explained, a good approach at the moment is to create
the graphics with C-c C-c in buffer, get rid of ':exports both', and
manually insert an ATTR_LaTeX line. You may or may not want to
use :width and :height to set plot dimensions in R, in addition to the
rescaling at the latex stage. See also Graham's recent thread

"[babel] captions and figure size on export"
http://comments.gmane.org/gmane.emacs.orgmode/22837

As for improvements, it is tempting to think that 

1. org-babel should automatically insert the ATTR_LaTeX line in
   accordance with :width and :height when creating latex output.
2. org-babel should keep existing ATTR_LaTeX lines attached to their
   respective figures (contra Graham's thread linked above)

I've had a brief look and doubtless all this is possible. It brings up
issues of what units :width and :height are assumed to be in (e.g. just
because R uses inches for pdf() doesn't mean that anyone else thinks
that's a sensible decision). And we have to be a careful because it
means altering what org-babel considers to be part of its results.

>
>> Using babel. For some reason my R graphics embedded within my pdf's don't
>> seem to be as "nice" as viewing them from within R, i.e. slightly fuzzy
>> edges. It's like the antialiasing has failed or something. The text labels
>> on the axes are definitely not up to latex standard.

OK, well we definitely don't want org-babel to be producing sub-par pdf
images, so it would be very helpful if you could help us further
here. First, can we determine whether this is an org-mode/org-babel
issue or an R/latex/pdf issue? E.g. If you create a pdf in R and embed
it in a LaTeX document manually does it come out looking better than the
equivalent operation done in org-babel? What about if you use postscript
output rather than pdf? If you use Sweave, how does the image in the pdf
output of Sweave compare to that of org-babel? Any further
investigations here would be much appreciated.

Dan


>
> Are you just viewing them or printing them. I find with Ubuntu that
> the default viewer seems to arbitrarily  change between programs and
> the quality of graphics on the screen varies, but the quality of
> printed output stays the same. Try opening the final PDF in an
> alternative viewer and see if things still appear the same.


>
> Graham
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode




reply via email to

[Prev in Thread] Current Thread [Next in Thread]