COMBINING PARALLEL COORDINATES AND HISTOGRAMS

A system provides data visualization with the capability of combining parallel coordinates and histograms. Parallel coordinates typically display lines between two or more vertical lines representing a coordinate element. In addition to displaying lines between coordinate element axes, histograms are provided at each element line to indicate the instances of data associated with line values. To create parallel coordinates with histograms, bin values may be determined for the parallel coordinates. Data is then accessed, and a particular bin value is incremented for each data point that falls within the bin. The parallel coordinates are then displayed with the histograms indicating a quantity of data associated with each coordinate value.

BACKGROUND

1. Field of the Invention

The present invention relates to visualization of data. In particular, the present invention relates to three dimensional data visualization.

2. Description of the Prior Art

Visualization of data in three dimensional graphs can be helpful to understand the data. An example of a three dimensional graph is a plot of data on multiple axis, such as a horizontal, vertical, and another coming towards or away from the point of view of a viewer. Three dimensional coordinate graphics are sometimes translated into parallel coordinates. This can be helpful to identify data values in another format, but can quickly become overwhelming with a large number of data points

With big data applications becoming increasingly popular, there is a need to display large amounts of data in multiple formats in order to better understand the relationships of the data. What is needed is an improved visualization interface for displaying data as desired by a user.

SUMMARY

The present technology may provide data visualization with the capability of combining parallel coordinates and histograms. Parallel coordinates typically display lines between two or more vertical lines representing a coordinate element. Rather than displaying only lines between coordinate element lines, histograms are also provided at each element line to indicate the instances of data associated with line values. To create parallel coordinates with histograms, bin values may be determined for the parallel coordinates. Data is then accessed, and a particular bin value is incremented for each data point that falls within the bin. The parallel coordinates are then displayed with the histograms indicating a quantity of data associated with each coordinate value.

An embodiment may perform a method for displaying data. An image of parallel coordinates may be provided. The image may correspond to a set of multi-dimensional data through an interface provided on a display. A plurality of histograms may be provided on each of the axes forming the visual representation of the parallel coordinates. The histograms may be determined from the set of multi-dimensional data.

An embodiment may include a system for displaying data. The system may include a processor, a memory, and one or more modules stored in memory. The one or more modules may be executed by the processor to provide an image of parallel coordinates corresponding to a set of multi-dimensional data through an interface provided on a display and provide a plurality of histograms on each parallel coordinate, the histograms determined from the set of multi-dimensional data.

DETAILED DESCRIPTION

The present technology may provide data visualization with the capability of combining parallel coordinates and histograms. Parallel coordinates typically display lines between two or more vertical lines representing a coordinate element. Rather than displaying lines between coordinate element lines, histograms are provided at each element line to indicate the instances of data associated with line values. To create parallel coordinates with histograms, bin values may be determined for the parallel coordinates. Data is then accessed, and a particular bin value is incremented for each data point that falls within the bin. The parallel coordinates are then displayed with the histograms indicating a quantity of data associated with each coordinate value.

FIG. 1is a system for processing and visualizing data. The system ofFIG. 1includes structured data110, unstructured data120, application servers130,150and160, and data store140. Structured data110(RDMS data) may include data items stored in tables. The structured data may be stored in a relational database, and may be formally described and organized according to a relational model. Structured data110may be data which can be managed using a relational database management system and may be accessed by application server130.

Unstructured data may include data that does not include a predefined data model or does not fit into relational tables as structured data110. Unstructured data may include text, dates, numbers, facts and other data, including email, media and documents. Unstructured data may also include lists or other data associated with web page clicks, shopping cart data, and other data. Unstructured data may be accessed by application server130.

Application server may include one or more servers which receive and access structured data110and unstructured data120. Filter application132may be stored and executed on application server130, and may be executed to ingest and the structured and unstructured data. Filter application132may apply filters, intelligence, or other processes to select a subset of the data received and/or accessed.

Data store140may include one or more data stores which receive data which has been filtered by filter application132. Data stores140may include SQL servers, NoSQL servers, and other servers. The data may be stored in these servers until they are accessed for processing.

Application server150may include one or more servers which receive and/or access data stored in data store140. Processing application152may be stored on application server150. When executed, processing application152may access filtered data from data store140and analyze the data for trends, patterns, a particular data of interest, or other data desired for reporting. For example, processing application152may be implemented by “Apache Hadoop” software, which is an open source software application which provides a distributed application for analyzing data.

Once data is analyzed, visualization program162located on application server160may report the data to a user. The data may be provided in many forms, such as reports, visualizations, and other formats. For example, visualization application162may provide data in a three dimensional graphical visualization format. In some embodiments, processing application152and visualization module162may be implemented as part of a client server tool set for extracting data, mining data with analytical algorithms, and providing interactive visualization input.

FIG. 2is a method for analyzing and reporting data. The method ofFIG. 2may be performed by the system ofFIG. 1. First, structured data and unstructured data may be received at step210. The data may be received by filter application132on application server130. The received data may be filtered at step220. Filter application132may filter the data by time sampling, applying intelligence, and other methods to result in a subset of the entire set of the received data.

Filtered data may be stored at step230. The data may be stored based on the type of data it is. For example, structured data may be stored in a SQL database and unstructured data may be stored in a NoSQL database. The stored data may be analyzed at step240. Analyzing the data may include looking for trends, patterns, or otherwise processing the stored data to determine a subset of data to report to a user. Analyzing the data may be performed by processing application152on application server150. Once the stored data is analyzed, the data can be reported at step250. The data may be reported through an interactive visualization, reports, or other methods that may be useful to a user. The visualization may present a three dimensional graph of data and provide data in a parallel coordinates with histograms. Step250is discussed in more detail with respect toFIG. 3.

FIG. 3is a method for providing a visualization of data. The method ofFIG. 3may provide more detail for step250of the method ofFIG. 2. In embodiments, visualization application162may perform the steps ofFIG. 3. The visualization application162may extract stored data, mine data for desired information, and provide an interactive visualization of the data.

First, visualization software is initialized at step310. Initializing the data may include executing the software, identifying what data to retrieve, and other configurations of the software. Data to be visualized may be accessed at step320. The data may be accessed locally or remotely, for example from data store140.

Histogram bins may be determined at step330. Each histogram bin may be associated with a range of data. Data points will be placed in a particular histogram bin if the data point value is within a particular bin's range. The number of bins may depend on the value ranges of the data to be visualized, the desired detail to convey in the visualization, user preference, and other factors. Once the number of bins is selected, the bin ranges may be selected by dividing the axis length by the number of bins. For example, if an axis was to cover data values ranging from 0 to 1000 units on a screen, and there were 20 bins to display on the axis, each bin would have a range of 50 units. Bins may also have different ranges, if desired. For example, one or more bins may have a larger range or narrower range based on the frequency of data values, weighting of bins, and other factors.

After histogram data bins are determined, data is aggregated into the histogram bins at step340. The values from every data point are used to populate the appropriate bin. For example, if a data point had values of [4, 14, 21], and bins for each parallel coordinate had ranges of 0-9, 10-19, and 20-29, the [0-9] bin count would be incremented for the first coordinate from the [4] value, the [10-19] bin count would be incremented for the second coordinate from the [14] value, and the [20-29] bin count would be incremented for the third coordinate from the [21] value.

After aggregating the data into the histogram bins, the parallel coordinates with histogram data would be displayed at step350. An example of a parallel coordinate with histograms is displayed inFIG. 6.

FIGS. 4-6illustrate examples of a visualization interface for displaying three dimensional data.FIG. 4illustrates data points in three dimensional x,y,z coordinate system. The interface ofFIG. 4displays an x,y,z graphical coordinate system with data points410,412and414. Each data point has a value corresponding to each of the x axis, y axis and z axis. For example, data point412has an x value of a, a y value of b, and z value of c.

FIG. 5illustrates data points in parallel coordinates. The parallel coordinates display each data point in the x,y,z coordinate system ofFIG. 4as a set of lines between the three parallel coordinates labeled x, y and z. For example, data point412is displayed in the parallel coordinates as having a value of a on the x coordinate, a value of b on the y coordinate, and a value of c on the z coordinate. The parallel coordinates provide a line between the values on the different parallel axes for a data point. For example, there is a line connecting point a on the x axis and point b on the y axis as well as a line between point b on the y axis and point c on the z axis.

FIG. 6illustrates data points in parallel coordinates with histograms. As shown inFIG. 6, each parallel coordinate includes a plurality of histograms that indicate the data value frequency for a particular bin. The histograms may include graphics which increase in size as the data for the corresponding bin increases. The histograms may also include numerical information for providing a numerical value for the bin, in addition to the graphical representation of the bin size. In addition to the histogram on each axis in the parallel coordinate image, lines may be included to map out coordinates between the axes. Three lines are shown for exemplary purposes.

FIG. 7provides a computing device for implementing the present technology. Computing device700may be used to implement devices such as for example application servers130,150and160and data stores140.FIG. 7illustrates an exemplary computing system700that may be used to implement the present technology. System700ofFIG. 7may be implemented in the contexts of the likes of client computer210, servers that comprise services230-250and270-280, application server260, and data store267. The computing system700ofFIG. 7includes one or more processors710and memory720. Main memory720stores, in part, instructions and data for execution by processor710. Main memory720can store the executable code when in operation. The system700ofFIG. 7further includes a mass storage device730, portable storage medium drive(s)740, output devices750, user input devices760, a graphics display770, and peripheral devices780.

The components shown inFIG. 7are depicted as being connected via a single bus790. However, the components may be connected through one or more data transport means. For example, processor unit710and main memory720may be connected via a local microprocessor bus, and the mass storage device730, peripheral device(s)780, portable storage device740, and display system770may be connected via one or more input/output (I/O) buses.

Mass storage device730, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit710. Mass storage device730can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory720.

Portable storage device740operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer system700ofFIG. 7. The system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computer system700via the portable storage device740.

Input devices760provide a portion of a user interface. Input devices760may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system700as shown inFIG. 7includes output devices750. Examples of suitable output devices include speakers, printers, network interfaces, and monitors.

Display system770may include a liquid crystal display (LCD) or other suitable display device. Display system770receives textual and graphical information, and processes the information for output to the display device.

Peripherals780may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s)780may include a modem or a router.