Table, Graph, and Tree data structures for organizing data. {@link prefuse.data.Table} instances store any number of type data in a row and column format. Each column of data is separately represented in a {@link prefuse.data.column.Column} instance. Row data can be accessed directly by the row index, or can be accessed in an object-oriented manner using the {@link prefuse.data.Tuple} interface. The {@link prefuse.data.CascadedTable} class provides filtered views over backing Table instances. Table {@link prefuse.data.Schema Schemas} are used to represent the names, data type, and default values of table columns, and can be used to instantiate tables of the desired type.

{@link prefuse.data.Graph} and {@link prefuse.data.Tree} instances also use a tabular representation, using separate data tables to store node and edge data. At the cost of a little complexity, this allows for a very flexible system. For example, the same data table can be used as the node table for multiple graphs, supporting efficient memory use and allowing easy propagation of data changes. Similar to tables, graphs and trees can be accessed using the row indices of the respective tables, or through object-oriented Tuple proxies. The {@link prefuse.data.Node} and {@link prefuse.data.Edge} interfaces provide a more typical object-oriented API to the graph structure and data.