Workaround : cache the computations,not the plotting itself (which should be fast,and must be made on every table, anyway...) :
#+options: toc:nil author:nil
* Main text
Use of a static table:
#+call: timeit()
#+call: testplot[:file test0.pdf](data=table0)
#+call: timeit()
Use of a slow function:
#+call: timeit()
#+call: testplot[:file test1.pdf](data=table1)
#+call: timeit()
Use of a /cached/ slow function:
#+call: timeit()
#+call: testplot[:file test2.pdf](data=table2)
#+call: timeit()
* Annexes :noexport:
This is not exported, but computes results.
#+name: timeit
#+begin_src emacs-lisp
(format-time-string "%Hh %Mm %Ss")
#+end_src
#+name: table0
| Val | Square |
|-----+--------|
| 0 | 0 |
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
#+TBLFM: $2=$1^2
#+name: table1
#+begin_src emacs-lisp
(sleep-for 5)
(setq s ( list (list "x" "x^2") 'hline))
(dotimes (i 5 s) (setq s (append s (list (cons i (list (* i i)))))))
s
#+end_src
#+RESULTS[46320b31c46cef901580bad78aee7032d97ffe64]: table1
| x | x^2 |
|---+-----|
| 0 | 0 |
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
#+name: table2
#+begin_src emacs-lisp :cache yes
(sleep-for 5)
(setq s ( list (list "x" "x^2") 'hline))
(dotimes (i 5 s) (setq s (append s (list (cons i (list (* i i)))))))
s
#+end_src
#+name: tf
| festfile.pdf ]
#+RESULTS[46320b31c46cef901580bad78aee7032d97ffe64]: table2
| x | x^2 |
|---+-----|
| 0 | 0 |
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
#+name: testplot
#+begin_src gnuplot :var data=table0 :exports results
reset
plot data with linespoints
#+end_src
HTH,
--
Emmanuel Charpentier