From mboxrd@z Thu Jan  1 00:00:00 1970
From: "Berry, Charles" via "General discussions about Org-mode." <emacs-orgmode@gnu.org>
Subject: Re: rmarkdown-like production of multiple plots in org
Date: Thu, 2 Apr 2020 17:39:22 +0000
Message-ID: <F5E9FA07-5F3B-4EEC-899B-51C3523CF67A@ucsd.edu>
References: <CAN_Dec9LkVhCVX35oTE6UuZdGfs1=3azUDOY96wGH3R02v-yZg@mail.gmail.com>
Reply-To: "Berry, Charles" <ccberry@health.ucsd.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Return-path: <emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane-mx.org@gnu.org>
Received: from eggs.gnu.org ([2001:470:142:3::10]:48967)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ccberry@health.ucsd.edu>) id 1jK3os-0000te-Ld
 for emacs-orgmode@gnu.org; Thu, 02 Apr 2020 13:40:00 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <ccberry@health.ucsd.edu>) id 1jK3or-0002Dx-BF
 for emacs-orgmode@gnu.org; Thu, 02 Apr 2020 13:39:58 -0400
Received: from mx0a-00395d01.pphosted.com ([148.163.133.170]:4038)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <ccberry@health.ucsd.edu>) id 1jK3oq-0002DA-PN
 for emacs-orgmode@gnu.org; Thu, 02 Apr 2020 13:39:57 -0400
In-Reply-To: <CAN_Dec9LkVhCVX35oTE6UuZdGfs1=3azUDOY96wGH3R02v-yZg@mail.gmail.com>
Content-Language: en-US
Content-ID: <A668B93F1E758F448A57ACD9E1F92865@AD.UCSD.EDU>
List-Id: "General discussions about Org-mode." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
 <mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/emacs-orgmode>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
 <mailto:emacs-orgmode-request@gnu.org?subject=subscribe>
Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane-mx.org@gnu.org
Sender: "Emacs-orgmode"
 <emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane-mx.org@gnu.org>
To: Matt Price <moptop99@gmail.com>
Cc: Org Mode <emacs-orgmode@gnu.org>



> On Mar 31, 2020, at 12:23 PM, Matt Price <moptop99@gmail.com> wrote:
>=20
> I'm completely new to R.
>=20
> I've started working with a project that creates plots using the ggplot p=
ackage -- so by default it creates grid objects, rather than writing to fil=
es. =20
>=20
> In rmarkdown/rstudio, I can write something like this in a SOMEFILE.Rmd :=
=20
>=20
> ```
> install_github('eeholmes/CoV19')
> library(CoV19)
> getdata();
> plot4(world, 'Ontario Canada')=20
> plot2(world, 'Italy')=20
> plot4(states, "WA")
> ```
>=20
> I sort of love how the rmarkdown package will just create all 3 of those =
plots, save them to auto-named files, and render to HTML.

Actually, this is knitr (which rmarkdown Imports) at work.  There are optio=
ns as to how knitr will handle multiple plots in a chunk as described in

https://yihui.org/knitr/options/#plots

(which include `fig.show=3D"animate"' to create an animation based on multi=
ple plots!)

So this applies to various filetypes in addition to *.Rmd (*.Rnw, for one).=
=20


>  In RStudio, running just that block will also create all three blocks an=
d display them in the editor. =20
>=20
> By contrast, creating a series of many plots in org is fairly tedious.  I=
 have to name the plot individually & put each function call in its own src=
 block. Is there any way to mimic the behaviour of rmarkdown instead? I odn=
't understand babel or R enough to really even see how something like that =
could be implemented, but I'd appreciate some pointers.  Thank you!

Getting babel to handle this seamlessly would be a significant effort.

You can use ox-ravel (https://github.com/chasberry/orgmode-accessories.git)=
 to export to *.Rmd and then render the result.  However, that does not hav=
e the interactivity of `org-babel-execute-src-block' and does not insert th=
e graphics into the *.org file.=20

I suppose that a function could be created to narrow to the src block, expo=
rt it as *.Rmd to a buffer, run that buffer as the `text' arg of knitr::kni=
t, then add links for the png's back to the *.org file. I haven't thought m=
uch about this - getting this to work in a simple case would not be too har=
d, but there may be a can of worms that this approach opens.

HTH,

Chuck