Giuseppe,
> On Jun 3, 2024, at 6:47 AM, Giuseppe Pagnoni <gpagn...@gmail.com> wrote: > > Hi, > > I am trying to have an R code block output both the results of a numerical > expression AND a plot, but if I set up the header arguments to display the > plot, the numerical outcome is not displayed. A simple example: > > #+begin_src R :file example.png :results output graphics file > x <- rnorm(100) > print(mean(x)) > hist(x) > #+end_src > Babel is a great tool, but has some inherent limitations. Whilst you can work around this by breaking the above block into multiple src blocks, you might have an easier time using ox-ravel [1]. Basically, you export your *.org document to one of the knitr/Rmarkdown/quarto formats (e.g. *.Rmd) and then render the final output using one of those engines. This gives you access to the capabilities of any of those engines. The downside, of course, is that you need to learn a bit about the formatting rules in one of them to fine tune your final output. FWIW, I copy and pasted your query to a `*.org` file, exported it to `*.Rmd` with the latest ox-ravel version and rendered it as html - displaying all the printed output and all three plots. That did not need any modifications to your markup. > Here I get the histogram plot back in the buffer, but NOT the result of > "print(mean(x))". Is it not possible to get both? > > Furthermore, what if I wanted to display *two* or more plots that get built > by the code, for instance: > > #+begin_src R :file example.png :results output graphics file > x <- rnorm(100) > print(mean(x)) > hist(x) > hist(x^2) > #+end_src > > Here, only the last plot gets displayed. Is it not possible to display more > than 1 plot? > If you want to do this with babel, do the computations in an initial block and then use subsequent blocks for each of the displayed outputs/graphs. You will need to use the `:session` header arg to retain the data in `x' across blocks. HTH, Chuck [1] https://github.com/chasberry/orgmode-accessories