3.6 Org Plot
Org Plot can produce graphs of information stored in Org tables, either graphically or in ASCII art.
Graphical plots using Gnuplotβ
Org Plot can produce 2D and 3D graphs of information stored in Org tables using Gnuplot and Gnuplot mode. To see this in action, ensure that you have both Gnuplot and Gnuplot mode installed on your system, then call C-c " g or M-x org-plot/gnuplot on the following table.
#+PLOT: title:"Citas" ind:1 deps:(3) type:2d with:histograms set:"yrange [0:]"
| Sede | Max cites | H-index |
|-----------+-----------+---------|
| Chile | 257.72 | 21.39 |
| Leeds | 165.77 | 19.68 |
| Sao Paolo | 71.00 | 11.50 |
| Stockholm | 134.19 | 14.33 |
| Morelia | 257.56 | 17.67 |
Notice that Org Plot is smart enough to apply the tableβs headers as labels. Further control over the labels, type, content, and appearance of plots can be exercised through the βPLOTβ keyword preceding a table. See below for a complete list of Org Plot options. For more information and examples see the Org Plot tutorial.
Plot optionsβ
βsetββ
Specify any Gnuplot option to be set when graphing.
βtitleββ
Specify the title of the plot.
βindββ
Specify which column of the table to use as the βxβ axis.
βdepsββ
Specify the columns to graph as a Lisp style list, surrounded by parentheses and separated by spaces for example βdep:(3 4)β to graph the third and fourth columns. Defaults to graphing all other columns aside from the βindβ column.
βtypeββ
Specify whether the plot is β2dβ, β3dβ, or βgridβ.
βwithββ
Specify a βwithβ option to be inserted for every column being plotted, e.g., βlinesβ, βpointsβ, βboxesβ, βimpulsesβ. Defaults to βlinesβ.
βfileββ
If you want to plot to a file, specify β"path/to/desired/output-file"β.
βlabelsββ
List of labels to be used for the βdepsβ. Defaults to the column headers if they exist.
βlineββ
Specify an entire line to be inserted in the Gnuplot script.
βmapββ
When plotting β3dβ or βgridβ types, set this to βtβ to graph a flat mapping rather than a β3dβ slope.
βtimefmtββ
Specify format of Org mode timestamps as they will be parsed by Gnuplot. Defaults to β%Y-%m-%d-%H:%M:%Sβ.
βscriptββ
If you want total control, you can specify a script fileβplace the file name between double-quotesβwhich will be used to plot. Before plotting, every instance of β$datafileβ in the specified script will be replaced with the path to the generated data file. Note: even if you set this option, you may still want to specify the plot type, as that can impact the content of the data file.
ASCII bar plotsβ
While point is on a column, typing C-c `` a or M-x orgtbl-ascii-plot create a new column containing an ASCII-art bars plot. The plot is implemented through a regular column formula. When the source column changes, the bar plot may be updated by refreshing the table, for example typing C-u C-c *.
| Sede | Max cites | |
|---------------+-----------+--------------|
| Chile | 257.72 | WWWWWWWWWWWW |
| Leeds | 165.77 | WWWWWWWh |
| Sao Paolo | 71.00 | WWW; |
| Stockholm | 134.19 | WWWWWW: |
| Morelia | 257.56 | WWWWWWWWWWWH |
| Rochefourchat | 0.00 | |
#+TBLFM: $3='(orgtbl-ascii-draw $2 0.0 257.72 12)
The formula is an Elisp call.
function orgtbl-ascii-draw value min max \&optional widthβ
Draw an ASCII bar in a table.
VALUE is the value to plot.
MIN is the value displayed as an empty bar. MAX is the value filling all the WIDTH. Sources values outside this range are displayed as βtoo smallβ or βtoo largeβ.
WIDTH is the number of characters of the bar plot. It defaults to β12β.