org-mode/contrib/babel/library-of-babel.org

69 lines
1.4 KiB
Org Mode

#+title: The Library of Babel
#+SEQ_TODO: TODO PROPOSED | DONE DEFERRED REJECTED
#+OPTIONS: H:3 num:nil toc:2 \n:nil @:t ::t |:t ^:t -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
#+STARTUP: odd hideblocks
* Introduction
The Library of Babel is an extensible collection of ready-made and
easily-shortcut-callable source-code blocks for handling common
tasks. Org-babel comes pre-populated with the source-code blocks
located in this file. It is possible to add source-code blocks from
any org-mode file to the library by calling =(org-babel-lob-ingest
"path/to/file.org")=.
* Plotting code
** R
Plot column 2 (y axis) against column 1 (x axis). Columns 3 and beyond, if present, are ignored.
#+srcname: R-plot(data=R-plot-example-data)
#+begin_src R :session *R*
plot(data)
#+end_src
#+tblname: R-plot-example-data
| 1 | 2 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| 5 | 25 |
#+lob: R-plot(data=R-plot-example-data)
#+resname: R-plot(data=R-plot-example-data)
: nil
** Gnuplot
* Table/Matrix manipulation
Elegant lisp code for transposing a matrix.
#+tblname: transpose-example
| 1 | 2 | 3 |
| 4 | 5 | 6 |
#+srcname: transpose
#+begin_src emacs-lisp :var table=transpose-example
(apply #'mapcar* #'list table)
#+end_src
#+resname:
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
* Misc
#+srcname: python-identity(a=1)
#+begin_src python
a
#+end_src
#+srcname: python-add(a=1, b=2)
#+begin_src python
a + b
#+end_src