From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hendy Subject: Re: org-babel R output table with plot Date: Wed, 26 Mar 2014 21:55:02 -0500 Message-ID: References: <87txan8vvj.fsf@news.tumashu-localhost.org> <87mwgf87w9.fsf@news.tumashu-localhost.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WT0TB-0005mf-3N for emacs-orgmode@gnu.org; Wed, 26 Mar 2014 22:55:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WT0T9-0004KY-Pq for emacs-orgmode@gnu.org; Wed, 26 Mar 2014 22:55:05 -0400 Received: from mail-oa0-x233.google.com ([2607:f8b0:4003:c02::233]:55528) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WT0T9-0004JO-LH for emacs-orgmode@gnu.org; Wed, 26 Mar 2014 22:55:03 -0400 Received: by mail-oa0-f51.google.com with SMTP id i4so3689806oah.38 for ; Wed, 26 Mar 2014 19:55:02 -0700 (PDT) In-Reply-To: <87mwgf87w9.fsf@news.tumashu-localhost.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Feng Shu Cc: emacs-orgmode On Mon, Mar 24, 2014 at 7:00 PM, Feng Shu wrote: > John Hendy writes: > >> On Mon, Mar 24, 2014 at 10:22 AM, Feng Shu wrote: >>> Hi everyone >>> >>> I want to R output table with plot, I use a solution below, >>> Who can tell me other solutions? >>> >> >> I sort of follow the below, but I think it would be more helpful to >> describe what you *don't* like about the output below. In other words, >> what are you trying to achieve that is not working below? >> > > It just suit my need, but I want to know more simper solution, which let > me type less code. Hmmm. Not seeing a ton of ways to optimize, but it might depend on your total usage scenario. How many of these types of table/plot combinations are you creating? Just a couple sets, or a lot? The plot command is the only one that looks inefficient since a babel block with :file header would automate opening/closing a device... If you defined your data.frame in another babel block and used the :session argument, you could do something like this: #+name: plot #+header: :file /path/to/file.png :width 1600 :height 900 :res 200 #+begin_src R :session r :exports results :results output graphics plot(data) #+end_src After that executes, you'll end up with a named results block which you can manually add the #+caption to? I typically use something like the above. Your solution is nice as one could add things like #+attr_latex or #+begin/end_center code via the paste() function in R... while mine saves having to manually do pnt(); plot(); dev.off(). Another option might be to generate all your plots in a loop, perhaps, and then stick to just programmatically including them with Org syntax? I essentially did that here: - http://lists.gnu.org/archive/html/emacs-orgmode/2012-08/msg01167.html Not really much different than what your'e doing, though, I suppose. It would just scale nicely if you have various data sets and always generate a table and plot from them all. Then you could create your data.frames in a list and then lapply() through them with each of your functions, printing the proper Org syntax as the result (with :results drawer, as you're already using). This thread also came to mind, as I was reusing lines like you are, and keeping them in separate babel blocks. I got the suggestion to call a named block, which might be of interest if you've not done that before? - General use: https://www.mail-archive.com/emacs-orgmode@gnu.org/msg56684.html - Using a #+call line: https://www.mail-archive.com/emacs-orgmode@gnu.org/msg56688.html Sorry I can't be of more help! John