Double-click on the images below to view larger versions.

For more images and information, have a look through the Sliver User's Manual...

Sliver is feature-rich

Sliver offers a variety of features and visualizations to help you understand what your data is telling you.


File I/O Menu


Versatile Data I/O

Data can be input from a CSV or tab-delimited TXT file in either decimal/time or hexadecimal format with a header row for variable (column) names. Time data can be in the formats hh:mm:ss and mm:ss, where hh and mm are one- or two-digit integers and ss can be a decimal number. You can input all variables or you can select variables by name with checkboxes. Decimation (reading every nth row to sample the data) is also supported. Data selections in Sliver can be saved in separate file. Sliver sessions can also be saved and restored.



Parallel coordinate (PC) plot -- click for larger image

Histograms and Means

Spread Axes


Parallel Coordinate Plot (PC Plot)

Traditional plotting programs offer 2D and 3D plots, capturing the dependency of two or three variables. Relationships among more than three variables are represented as families of curves or as sets of plots. Understanding multivariate relationships is difficult for 4 or 5 variables, much less 8 or 10 or more variables.

In Sliver the input data is initially plotted in parallel coordinates (PC). In a PC plot the axes of values for the variables lie parallel to each other, here as typical running vertically with linear scales ranging from the minimum to the maximum value for each variable. Each data row in the input file is represented by a segmented line, or polyline, that passes through the corresponding value on each variable axis. Lines are selected by swiping and can be assigned to color brushes. Color-brushed lines can be hidden to remove clutter for uninteresting data. An axis can also be chosen to range brush or gap brush with up to 16 colors.

Correlations and outliers can be seen in the structure of these polylines, and swiping and coloring interesting groups of them reveals even more relationships as described in the manual. These selections can be combined by OR, AND or XOR operations. Color-brushed groups can be hidden or brought to the front to isolate interesting data. Polyline values at each axis can optionally be displayed by rolling the mouse over a polyline. Axes can be moved, deleted and inverted, and polylines can be automatically multi-color-brushed by range or gaps along an axis. All colors and line thicknesses are configurable.

Histograms and means can also be displayed along one or more axes, as shown in the middle figure. The histograms have a configurable number of bins and lie along the left side of the axes; they provide useful insight into the distribution of polylines intersecting the axes. The mean value of these lines is shown with a line on the right side of the axes. Axes can be centered on their means if desired to show variation. In fact, axes can be centered on any selected polyline to show variations from a reference, such as the polyline of a runner in a race. Click on this middle figure to see the support Sliver provides for inputting and displaying ranges in hh:mm:ss time format.

Sliver also provides the ability to compress or spread out the axes horizontally to provide greater visibility of interesting axes when there are many variables, as shown in the bottom figure. Zooming and panning is also available. Ranges can also be adjusted or set to shift lines off the top and bottom of an axis to spread out lines of interest.. As shown in the figure, vertical offsets (staggering) of axis names and ranges can be turned on to handle overlapping text in plots of many variables.

K-means clustering is also provided by Sliver. The desired variables are user-selected, and data clusters are automatically found and color-brushed with a behind-the-scenes interface to the free R statistical software. The number of clusters k and the number of those found clusters to color brush is configurable. This function in combination with the transparent PC Plot display below provides an excellent way to identify and isolate clusters in the plot.



PC plot exported with transparency -- Click for larger image


Parallel Coordinate Plot with Transparency

Polylines can overlap and present a confusing mass (called overplotting). Selecting, color-brushing and hiding colored groups of polylines helps greatly to focus on data of interest, but viewing the PC plot with alpha-blending (transparency) is very beneficial. There are two ways to do this in Sliver:

1. Transparent PC Plot Window (Java must be installed)
The PC plot can be opened in a separate display window with a transparency and linewidth that is adjustable via the keyboard.

2. Export to PDF
The PC plot can be exported to PDF as vector graphics with transparency. The degree of transparency (alpha value), the type of blending, and plot characteristics such as linewidths, font size, and the display of axes names and ranges are all configurable. 2D scatterplots and a PC plot matrix (see below) can also be exported with transparency, while 3D plots achieve transparency through Google Earth. The PDF can be then be saved as a high-res PNG or JPG image for presentation-quality graphics if desired. (For best viewing results, download the PDF on the left and open it in Acrobat rather than in your browser.)


PC plot matrix -- click to see another, larger version exported with transparency

PC plot matrix exported with transparency -- click for larger image


Parallel Coordinate Plot Matrix

Sometimes an uncorrelated intermediate axis will obscure a correlation between the axes on each side of it. An extreme example is an intermediate axis on which all polylines pass through a single scale point. A PC plot matrix is a convenient way to visualize relationships between every pair of variables without having to move the axes into all possible orderings. It performs a function similar to a 2D scatterplot matrix.

Each row of the matrix displays a complete PC plot across a unique ordering of the variables. The color-brushing of the polylines in the matrix follows that applied in the main PC plot. A neighboring pair of axes for any two variables can be found somewhere among the rows. Relationships between every pair of variables can be seen in this matrix, and these may spur you to re-arrange the axes in the main PC plot to locate correlated axes next to each other. This also reduces line clutter between axes of uncorrelated variables and minimizes overplotting.

The number of rows required to do this is surprisingly low for a given number of variables. As seen on the left, only 7 rows are required for 15 variables. The top plot is a screenshot from Sliver without transparency, and the bottom plot is a differently-colored matrix exported with transparency to PDF. Double-click on the second plot for a zoomed PNG image and you will see the amount of detail discernable with transparency. The actual PDF can be zoomed without loss of resolution because it is vector-drawn.



2D scatterplot -- Click for larger image

2D scatterplot in polar coordinates -- click for larger image

Bubble Chart -- click to see larger version


2D Scatterplots

2D scatterplots of any two selected variables can be plotted in either Cartesian or polar coordinates (the latter in either radians or degrees). The two axes are linearly scaled between the minimum and maximum values of the variables (artificially adding data rows is one way to force the ranges). Point shape (filled or hollow) and size can be changed via the settings or the keyboard. Bubble charts (scatterplots where the size of points is determined by yet another variable) are also supported, as shown in the lowest plot on the left. In this plot the Year was plotted against MPG in the cars.csv dataset, rainbow-brushed in Horsepower from blue to red and sized according to the number of cylinders.

Color-brushing of interesting data points propagates those colors to the polylines in the main PC plot and all other 2D scatterplots, and vice-versa. When the option to display values is turned on, mouse-overs of points in these plots display values in this plot as well as all other plots and vice-versa.

2D scatterplots can be resized and stretched vertically and horizontally. When the x-axis variable represents time, a horizontally stretched 2D scatterplot provides an excellent timeline graph. (Stretching a plot may stretch the points, so remember to press S to resize the points after stretching a plot.)

All plots on the left are screenshots without transparency, but 2D scatterplots can be exported to PDF with transparency to show greater detail.



3D scatterplot -- click for larger image


3D Scatterplots

Sliver natively uses Google Earth to display 3D scatterplots in Cartesian, spherical and cylindrical coordinates. This may seem odd, but Google Earth provides extremely fast rendering of icons in a 3D setting, and it supports transparency levels that are useful when viewing many thousands of points in space.

Spherical points of configurable size and transparency are positioned in a cubical volume over a white, remote part of Antarctica! Color brushing matches that of the other plots (and in fact it confers a 4D characteristic to the 3D scatterplot). Mouse controls easily rotate, zoom and pan the view to look for structures in the vector-drawn plot. Axes are drawn, and though they are not seen in the plot on the left, axis text labels are also shown.

Sliver also supports the export of 3D scatterplots to Matlab if installed. Matlab offers excellent, interactive 3D scatterplots that can be rotated, zoomed and saved. After selecting the three variables for the Cartesian plot and the size of the points, the Matlab 3D scatterplot is automatically launched with the points with the color brushing applied in Sliver.



Google Earth plot with second, offset plot -- click for larger image

Linear Connections Plot

January 15, 2008, Chicago O'Hare Outbound US Flights

Connections and Pillar Plots

Chicago 2016 Homicides through Christmas

Chicago 2016 Homicides through Christmas Pillar Plot

Timestamps, Pop-ups and Labels in Google Earth


Google Earth Plots

Sliver supports three general types of Google Earth plots for geographic data. These are all simple and quick to produce and reproduce.

Google Earth Path Plot

Data representing latitude, longitude and altitude can be plotted as a path over the corresponding terrain in Google Earth, as seen in the top figure. This is a plot from limited data, and in general very detailed paths can be shown. This can be useful for runners, cyclists, hikers, and so forth who use Strava or other GPS records to create CSV files of their tracks. The vertical supports and path width, along with their transparencies, are configurable. The path coloring matches the color brushing of the other plots. The coloring would typically reveal ranges of yet another variable along the path (say, heart rate at any point along a run).

Sliver creates a KML file and automatically loads that file into Google Earth for display. Multiple KML files can be opened in Google Earth to show multiple paths at once. There are configurable offsets and multipliers of the the plotted data, so multiple paths of different heights can be created and displayed with vertical offsets. Choosing to have no path supports allows these paths to float above each other. Changing the color-brushing between plotting the data creates different plots that are independently color-brushed to highlight ranges of different variables. In fact, with different color-brushing and different path widths you can create a colored ribbon along a single path to show value ranges for different variables.

Google Earth Connections Plot

Sliver also provides the option to create a Google Earth "connections" plot. Here two different sets of geocoordinates in each row are connected. This type of plot can be used to draw connecting lines between corresponding locations in two path plots to visualize their relationships, as in connecting two aircraft or connecting single aircraft positions to their corresponding positions on the plot above the flight path in the figure on the left. It can also be used to plot connections or boundaries on the ground. These connection plots observe the same Google Earth settings as for the path plots.

The second figure on the left shows straight lines connecting origin and destination coordinates of outbound US flights from the Chicago O'Hare Airport on January 15, 2008. Straight lines require the latitude, longitude and altitude of the two ends in each row of the data file. Here the altitude at O'Hare was assigned to a variable representing departure time, with a multiplier entered in the Google Earth Settings. The PC plot was range brushed in a rainbow palette based on the arrival delay variable, with red being the worst. Since multiple flights to US cities occurred throughout the day, interacting with this plot provides a means of exploring arrival delays by city throughout the day.

The third figure shows another connections option: connecting ground points by parabolic arcs having a configurable height to distance ratio. This plot uses the same airlline data as the previous plot. The arcs lie over the great circles between the endpoints. The overlapping of repeated flights to the same city can be mitigated by offsetting the destination coordinates slightly.

The fourth figure demonstrates another option of the connections plot that assumes the endpoints lie on the ground, in which case great circle paths are drawn along the surface of the earth. The endpoints are airports as in the previous figures. The overlapping of lines is mitigated in this plot by another plot of our next type.

Google Earth Pillar Plot

The term "pillar plot" has been coined for Sliver's unique feature of color brushed, vertical rods of configurable thickness and opacity rising from geographic locations. These can optionally include spheres on the top of configurable size and opacity (at which point they look more like kabobs). The height can be set as a fixed value or set to a variable with an optional multiplier in Google Earth Settings.

The fourth figure includes (along with a ground connections plot) a pillar plot with spheres at the destination airports that are rainbow colored according to arrival delay. The heights of the pillars are assigned to the arrival delay variable as well, but with a multiplier and offset. This combined plot provides a convenient visualization of airline performance for that day.

The fifth plot consists of short, fixed-height pillars with spheres on top at locations of 2016 Chicago homicides through Christmas. The PC Plot (and therefore the spheres) was color brushed based on whether an arrest was made--red spheres indicate that no arrest was made in the crime.

The sixth plot on the left presents the same data as the previous plot. The yellow pillars are widened and their opacity decreased. Their height was fixed at a very large value, and whether they were configured to support spheres or not is irrelevant since they are so tall. This plot is perhaps more evocative of the loss felt in the neighborhood blocks by these homicides.

Also supported in Google Earth plots are timestamps, pop-ups and labels. The last plot on the left shows all three of these features applied to the same 2016 Chicago homicide data. Click on that plot to show a larger image.

Timestamps: The player controls in the upper left of the Google Earth window automatically appear and span all timestamps in the displayed KML plots. When the last plot was created, the timestamp option was enabled with the time in seconds given by another variable (this variable was created using the Convert Date/Time to Numeric function in the DataTools menu, but there is an option to just use the row number in seconds in order to provide some form of a timespan). The starting date was entered for the timestamp (1/1/16), and here the number of seconds in the player controls naturally extends to 1/25/16 where the data ended. The two sliders can be adjusted to span an interval of time, and they can either be manually dragged to show different elements at different times, or automatically played with a speed that can be set by clicking on the wrench icon. The timestamp also provides a convenient way to unclutter large amounts of data by only showing relevant data for particular rows or time. Playing this particular data with an interval of a day is an effective way of demonstrating the regularity of these homicides.

Pop-ups: The option to select variables for pop-ups (also called balloons) are also offered for Google Earth plots. In the last plot a set of variables from the crime data were selected, and the variable names and values are displayed when a data point is clicked (the light blue pop-up here). If a string mapping file is entered in the Plot Settings, any variable value that is mapped to a string will display the string instead of the value, and here we see several such strings. In this case the string mapping file was automatically created as part of the Replace Strings with Numbers function in the DataTools menu that was applied before the numerical data was input into Sliver, but the mapping file can also be manually created in that text format as described in Appendix D of the User's Manual.

Labels: Variables can also be selected for labels, which appear when the mouse hovers over a data point. Labels are limited to a single line, and for that reason they show values of variables separated by commas without the variable name. In the lower right of the last plot we can see the mouse cursor over a data point, and a label is therefore shown with the case ID and date, using the same string mapping file to display the original strings.



Grand Tour animation -- click for larger image


The Grand Tour Animation

Sliver provides a window in which n variables are plotted in n-space, randomly rotated in n-space, and projected onto the x-y plane of the computer screen. The color-brushing matches that of the other plots. Data correlated across multiple dimensions moves as a group easily seen and matched to the current rotations of the axes displayed in the lower right corner. Data structure, which is much more difficult to detect numerically, can also be detected in this animation.

The rotation can be paused to re-brush points or groups of correlated points, and the color-brushing propagates to the other plots. Keyboard controls include speed, step coarseness, rotation direction, zooming, and point size. Automated pursuits are provided, in which the random rotations stop at the better separation of points of different colors, the better isolation of a particular color, etc.

Have a look at this video of the Grand Tour in action in Sliver. It reveals structure in the data of a 2D filled triangle with two jets of data points coming off each vertex (there is a break in the video while one jet on each vertex was colored and hidden to better show and color the other jets). Download the PRIM7 CSV file and try it! (Open the file, select Animate-->Grand Tour, select all variables, then enter H in the new window to see help on how to speed up, zoom and pan the animation.) Java must be installed on your PC.

The 7-variable, 500-record PRIM7 dataset is from a high-energy physics scattering experiment in 1971. A principal component analysis (PCA) was first performed on the original PRIM7 dataset. The jets represent data from different particles created in the experiment. A description of this dataset and the use of the GGobi data visualization software (which also implements parallel coordinates and a Grand Tour) is found in this book, the PRIM7 section of this chapter, and this video.



Count-based animation -- click for larger image

Count-based animation with Google Earth -- click for larger image


Count-Based Data Animation

The input data can be animated on the PC plot, 2D scatterplots and Google Earth plot using player controls. The points in all plots are highlighted to match the current row (the count) in the player. The speed, direction and number of PC plot lines to fade away are configurable, as is the option to display the current values on the plots.

Since the current row being animated is a text line in a text file, you can sync the animation to or from an external program by writing a script to read or populate that value.

If one of your displayed plots is a Google Earth plot of, say, a race, that plot is also animated with the player controls, tracing a path colored according to a variable with one of several available icons. A second Google Earth plot might show values of heart rate, respiration, etc., as you raced along the first path, with this plot colored according to the second variable.

Actually, you can choose to connect two paths with a line when animating the Google Earth plot, so you can do things like connect a runner icon on the main path to a second, raised plot in Google Earth. The lower left screenshot is from a 15-minute Google Earth animation of seven runners in the 2013 Chicago Marathon, where each runner is connected to a plot of speed in the sky in the matching color. The marathon course is laid out along the streets in a separate blue plot based on geocoordinates of the course, and the buildings of Chicago are rendered in 3D by Google Earth. To create this video, seven instances of Sliver were running concurrently and animating each runner's data while Google Earth was manually zoomed and panned by mouse, all recorded with the Camtasia screencasting software. The selectable size of the colored dot icon is in screen pixel units, so the dots become smaller relative to the buildings when zooming in for closer views.



Real-time data animation -- click for larger image


Real-Time Data Animation

For monitoring purposes, Sliver also provides real-time input and display of data in the PC plot and 2D scatterplots. After setup, including color-brushing of an axis prior to data input, lines of data are continously read from the last lines of a text file that is continuously written with data (for example, by an Arduino monitoring a sensor). The file interface limits the usable data rate to about one or two data rows per second. Older data can be erased to reduce clutter if desired, and either all or just the more recent data can be saved.


Typical DataTools function -- click for larger image


DataTools Functions

A menu provides a set of 26 tools to munge data in the input CSV or TXT file (extract, merge, add, delete, or swap rows and columns, sort rows, populate missing data, convert date/time formats to numeric, convert strings to numbers, split/concatenate/join files), plus a function to merge individual Google Earth KML files into a single KML file for convenience. These data tools are generally much faster and more convenient than opening data files directly in Excel and manually performing the operations, particularly for large files or for files too large to load into Excel. In fact, these tools are excellent alternatives at times to working in Excel generally.

This set of data manipulation tools, excluding the function to merge KML files, is now also available as a separate, standalone application from the Download page.