Charts and Group By

← Contents

TableSkim draws charts of the rows you are looking at and summarizes them in tables, without a spreadsheet or a script. This page shows, with examples, which tool answers which question, how to read the result, and how to go from a chart to the rows behind it. The examples use the demo files normal.csv (54 people; its first row is taken as the header) and large.parquet (10,000 rows).

Which tool for which question

QuestionToolGUITUI
What values does a column hold, and how many of each?HistogramEdit → Histogram...B
Are two number (or date) columns related?Scatter plot, densityEdit → Scatter Plot...M
How does a number differ between groups?Box plotScatter Plot, text on XM
How many rows, and what totals or averages, per group?Group ByEdit → Group By...A
Minimum, maximum, mean of one column?Column statisticsEdit → Column StatisticsS

Every tool works on the current view: the rows left by the filter. So you can filter first (for example to one year) and then chart or group just those rows; the charts follow when the filter changes.

How one column is distributed: histograms

A histogram counts how many values fall into each range ("bin") of a column. Put the current cell in the column and choose Edit → Histogram... (Ctrl+Shift+H).

Histogram of the Score column of large.parquet

How to read it:

Dates are counted into whole days, months or years; a column of text shows its most frequent values instead, longest bar first. See Histograms for every option and How bins are chosen for the details.

How two columns relate: scatter plots and density

A scatter plot draws one point per row, with one column across (X) and another up (Y). Choose Edit → Scatter Plot... (Ctrl+Shift+P). Select two columns first to plot exactly those (the first one is X); otherwise TableSkim picks number or date columns near the current cell, and you can change them in the X and Y lists.

Age against Salary, with the regression line

How to read it:

With many rows, points pile up on each other. Show → Density counts the rows in a grid instead, and colours each cell from dark (few rows) to yellow (many):

Density of Value against Score: 10,000 rows

The yellow band shows where most rows lie (scores around 50, whatever the value). Log color scale keeps cells with a handful of rows visible next to the busiest ones; turn it off to compare counts linearly.

How groups differ: box plots

When X is a column of text, such as a department, each of its values becomes a group with a column of its own, and the plot shows a box plot per group. Here: salaries by department.

Box plots of Salary by Department

How to read a box:

Engineering has the highest median, 人事部 the widest spread; departments with one person (研究開発部) show only a line. Up to 30 groups are shown, the largest first; the rest are drawn together as (other).

For a group with more than 1,048,576 values, the box statistics are estimated from a uniform sample of that many values. The displayed row count still includes the whole group; the sample size and an estimate label appear with the box's numbers. Minimum, maximum and outlier counts also describe the sample. Density counts use all rows. The sample is the same whether points are retained or only the density is calculated.

When groups do not differ, the boxes look alike, as for the five categories of large.parquet, which were generated the same way:

Box plots of Score by Category: five alike groups

Show → Density shows each group's histogram as a column of coloured cells, which tells more about the shape than a box (two peaks, say):

Score by Category as a density

Summarizing in a table: Group By

Charts show patterns; Group By gives the numbers. Edit → Group By... (Ctrl+Shift+G) asks which columns to group by and which to summarize, and puts the result in a new sheet named Group By.

The Group By dialog: Salary by Department

Counting rows per group

Check only a column to group by and press Group: the result has one row per value with its count. Sort the count column (click its sort button twice) to see the largest groups first:

People per department, largest first

The empty last row counts the rows without a department.

Means, minimums and maximums per group

Check columns under Aggregate and the functions below: count (values that are not empty), distinct (different values), sum, mean, min, max and std dev (standard deviation). Each aggregated column and function gives a column such as Salary mean. Means often have many decimals; Format in the column header menu shows them rounded, with thousands separators:

Formatting the Salary mean column

Salary by department, the mean rounded and separated

The Says "hello" row shows how text is handled: its salary is the text 500000.0, which counts as a number for the mean but is kept as written for min and max.

Totals of the whole sheet

Leave every Group by column unchecked: all rows form one group, and the result is one row of totals:

Totals: the count, sum, mean, min, max and standard deviation of Age

Grouping by several columns

Check two or more Group by columns to count each combination, for example City and Department: a row for each department in each city.

Working with the result

The Group By sheet is an ordinary sheet: sort it, filter it, chart it (a histogram of count, say), copy it, or save it with File → Export View.... Grouping again replaces it. It stays when the file is reloaded, but it does not change when the original sheet does; group again after changing the filter. See Group By for how values are compared.

From a chart to the rows

Charts and filters work together, so you can drill down step by step:

Double-clicking the Engineering box above leaves the seven engineers:

The sheet filtered to Engineering, from the box plot

Saving charts as images

Save Image... in the histogram and scatter plot windows writes the chart as shown, with its axis titles, to a file:

The type follows the extension you type, or the type chosen in the file dialog. Resize the window first to change the size of the image.

In the web app, Save PNG and Save SVG in the chart dialogs do the same; the browser saves the file into its downloads. The points of a scatter plot are separate shapes in its SVG.

In the terminal UI

The terminal UI has the same tools, drawn with characters:

Score by Category as a density in the terminal

The Group By sheet sorted by count

The Format dialog for the Salary mean column

See Using the Terminal UI for all keys. Saving charts as images is available in the GUI only.