Click component name to see manual page

Component Bundle Description
BoxPlot tools Box plot
CircosPlot tools Plot genomic data using Circos
CSV2Excel tools Export a CSV file to Excel using formatting
GNUPlot tools Plot using Gnuplot
HeatMapReport tools Heat maps
HTMLReport tools Generate HTML pages from tabular data
LatexCombiner tools Combine LaTeX fragments into a document
LatexPDF tools Compile LaTeX document into PDF
LatexTemplate tools LaTeX header and footer
Plot2D tools Scatter, line and bar plots using R
PlotHTML tools Visualize data using HTML
VennDiagram tools Venn diagrams


Anduril can generate visualizations in PDF, HTML and Microsoft Excel formats. Note that visualizations components in the tools bundle have various external dependencies that need to be installed using anduril install-dep. If you are using Docker, use anduril/anduril or anduril/full because anduril/core does not have external dependencies.

In addition to the ready-made facilities, you can use external scripts to plot in your favorite plotting library, such as ggplot2 (REvaluate), Matlab (MatlabEvaluate) or matplotlib (PythonEvaluate).


CSV2Excel exports CSV files into multi-sheet Excel files and supports formatting. Is is useful for export numeric and tabular results. In the following script, we create an Excel file containing two sheets, format header row as bold and use conditional formatting on the column named QualityOK. Result: Excel file.

#!/usr/bin/env anduril

import anduril.builtin._
import org.anduril.runtime._

object Excel {
    val data1 = INPUT("data1.csv")
    val data2 = INPUT("data2.csv")
    val style = INPUT("style.csv")
    val report = CSV2Excel(data1, data2, style = style, sheetNames = "Data 1,Data 2")

Style sheet (style.csv):

Sheet   Row     Column      Bold    Condition   BGColor
*       1       *           true    NA          NA
*       -1      QualityOK   NA      "== 1"      #aaffaa

PDF reports using LaTeX

Many PDF visualizers use the LaTeX document system to compile reports that can have multiple pages, embedded text, and table of contents. It is, however, possible to use individual PDF/PNG images generated by the visualization components without compiling LaTeX PDF documents. FolderExtractor can be used for extracting individual files from LaTeX folders.

In the example below, we generate a normally distributed random matrix and visualize it using box and bar plots. Result: PDF file.

#!/usr/bin/env anduril

import anduril.builtin._
import org.anduril.runtime._

object PDF {
    val data = Randomizer(distribution = "normal", rows = 20, columns = 5)
    val boxPlot = BoxPlot(data)
    val barPlot = Plot2D(data, plotType = "bar")

    val template = LatexTemplate(title = "Anduril report", printTOC = true)
    val document = LatexCombiner(boxPlot.out, barPlot.out, sectionTitle = "Plots")
    val pdf = LatexPDF(document, header = template.header, footer = template.footer)