"I also don't understand why it would be set to X11 in a plain-old R session"
R is an open source derivative of S and S-PLUS--"S" was the "Statistics Language"
MIT X Consortium's "X Motif" is the default output of R from its inception
R, S, S-PLUS have always made such output as its default
Suggest you just "get with the program"--thousands of R libraries are ready for you to use, extend and create your own libraries if you like--all leveraging the power of X11R6 --i.e. the XWindows system:
https://en.wikipedia.org/wiki/X_Window_System
By the way Micro$oft Windows is based on MIT's W--W stood for Windows--yet another thing MicroSoft swiped and monopolized and then sued others about whenever possible--rather than join the open source & free software movement
X11 is free & open source--all the best software is free & open source--like Emacs Org-Mode
> On Apr 4, 2020, at 4:27 PM, Matt Price <moptop99@gmail.com> wrote:
>
> Does anyone know much about the difference between an R session opened by typing M-x R, and the R session opened by org-babel?
Short answer: almost none.
Long answer: what `org-babel-R-initite-session' and friends do.
:-) thanks, I should have been looking for that
>
> I'm just learning R and my usual method for learning a language is to keep a kind of notebook in org with code snippets they I can execute and iterate on rapidly as I learn. This works great in R when I'm just doing math. When I am working on plots, it would be nice to have them open up quickly either in emacs or in the standard x11 window that R session opened switch M-x R opens up.
>
> I know I can set the src block headers to produ e a file, but when I'm just iterating rapidly I often switch back and forth between a data output and a graphical output, and typing/erasing those headers is clunky and slow. It would be easier to just paste the plot command into the console and have it pop open the window... But that doesn't seem to work. Anyone know if I can tweak something to make that possible?
>
I sam really puzzled by this. Do you have an ECM that illustrates this?
Working interactively on my Mac (Quartz - X11 is the device), I routinely do what you describe - usually working from the src edit buffer - and the plots are displayed (and older plots are available via clover-left or some such).
If I had to guess, I'd say that you are opening an R session, but not using it. If you execute a src block, but it does not have a `:session' header, a new instance of R will create a plot file and then exit. If you look in the default directory, you would see `Rplots.pdf' or some such.
The only other thing that comes to mind is that you opened a device that is holding on to all your plots. Try `dev.cur()' in R immediately before and after you create a plot and see what the result is.
This was the problem. I don't see that I'm calling dev.set() anywhere but when the session initiates dev.cur() returns
null
1
calling dev.set(1) or dev.set(2) launches an R_x11 window and future plots are displayed there. As I say, I'm just learning R, and I don't really understand how the device is set up. I also don't understand why it would be set to X11 in a plain-old R session, but not in an org-babel R session. Most references to "device" in ~ob-R.el~ seem to be managing file outputs, and "X11". For now I don't think I'll explore a proper solution as I'm already pretty far down a rabit hole just learning R at all! But thanks very much for this workaround.
Matt
HTH,
Chuck