Paul Stansell writes: > Hello everyone, > > I'd be grateful if someone would offer me advice on using gnuplot's > "splot" and "every" commands when plotting data from a table within > org-mode. > > As far as I can tell, these gnuplot commands do not work properly > because org-mode exports empty fields in tables as "" and gnuplot's > "every" and splot commands expect the data file to be formatted as a > datablock with blank lines marking the boundaries between datablocks. > (For the definition of a datablock, type "help glossary" at the > gnuplot prompt.) > > I'm using org-mode version 8.0.2 and emacs version 24.2.1 on a > Fedora-18 system > > > To illustrate my point, consider a blocked datafile called "block.dat" > containing the following: > > 1 1 2 > 1 2 5 > 1 3 10 > > 2 1 5 > 2 2 8 > 2 3 13 > > 3 1 10 > 3 2 13 > 3 3 18 > > For this file the gnuplot command > > #+begin_src gnuplot :var d="block.dat" :results silent > plot "$d" u 2:3 ev :::0::0, "" u 2:3 ev :::1::1, "" u 2:3 ev :::2::2 > #+end_src > > shows three separate lines of different colours as gnuplot > recognises the datafile as blocked data. > > Also, the following command produces a surface plot > > #+begin_src gnuplot :var d="block.dat" :results silent > splot "$d" u 1:2:3 > #+end_src > > However, if I put the same data in the table below > > #+tblname: data > | 1 | 1 | 2 | > | 1 | 2 | 5 | > | 1 | 3 | 10 | > | | | | > | 2 | 1 | 5 | > | 2 | 2 | 8 | > | 2 | 3 | 13 | > | | | | > | 3 | 1 | 10 | > | 3 | 2 | 13 | > | 3 | 3 | 18 | > > and use the following plot command > > #+begin_src gnuplot :var d=data :results silent > plot "$d" u 2:3 ev :::0::0, "" u 2:3 ev :::1::1, "" u 2:3 ev :::2::2 > #+end_src > > the result is a plot of a single line of the same colour as gnuplot > joins all of the points in the data file. This seems to be because > org-mode exports the table as > > "x" "y" "z" > 1 1 2 > 1 2 5 > 1 3 10 > "" "" "" > 2 1 5 > 2 2 8 > 2 3 13 > "" "" "" > 3 1 10 > 3 2 13 > 3 3 18 > > and gnuplot does not recognise this as a blocked data file because it > contains no blank lines. > > The same problem occurs for > > #+begin_src gnuplot :var d=data :results silent > splot "$d" u 1:2:3 > #+end_src > > which does not produce a gridded surface plot. > > Thanks for your help, > Hi Paul, While I can't claim to fully follow your gnuplot examples, i would recommend using an intervening shell code block to parse the Org-mode table data into something that gnuplot will ingest. If I understand your use case correctly, then something like the following should work.