A data collection that includes data records can be visualized in a graphical visualization. In the graphical visualization, graphical elements can represent various attributes of the data records. In some cases, a graphical visualization can be a two-dimensional (2D) visualization. In other examples, a graphical visualization can be a three-dimensional (3D) visualization.
Some implementations are described with respect to the following figures.
Data records in a data collection can have a relatively large number of different attributes. Examples of data records include files, documents, objects (e.g. images, video data, etc.), user feedback comments on websites, and so forth. As examples, data records pertaining to employees of an enterprise (e.g. business concern, educational organization, government agency, etc.) can include the following attributes: employee name, employee number, department the employee works for, employee position, social security number, salary, number of years employed, employee ranking, geographic region, and other attributes. As another example, data records pertaining to operation of an information technology (IT) system of an enterprise can include the following attributes: processor utilization, network utilization, storage utilization, device temperature, applications used, detected faults or errors, geographic region, and other attributes. As a further example, data records pertaining to sales activities of an enterprise can include the following attributes: product name, service name, state, country, sales amount, profit, cost, vendors, customer sentiment, and other attributes.
There can be numerous other examples of attributes, including structured and unstructured attributes, in other types of data records.
Visualization tools often allow for visualization of a relatively small number of attributes, based on the general assumption that users know what attributes are of interest and can thus select a subset of attributes to represent in a visualization. However, this may not be true in many cases, particularly for a data collection that includes a large number of attributes. In such cases, it may be beneficial to visualize a larger number of attributes concurrently, so that users can discover trends, patterns, or anomalies, which can then be used to determine which subset of attributes is of interest.
In accordance with some implementations, visualization techniques or mechanisms are provided to allow for visualization of a larger number of attributes simultaneously so that users are presented with more information than provided by visualizations that are able to represent a smaller number of attributes. In this way, users are able to more easily detect patterns, trends, or anomalies, and can thus better focus on (and select) attributes that can allow the users to determine a cause of such patterns, trends, or anomalies. The visualization techniques or mechanisms according to some implementations are able to visualize the larger number of attributes with reduced or minimal occlusion of graphical elements representing data records of a data collection.
A 3D graphlet is a graphical element that has multiple (e.g. at least three) dimensions. For example, the 3D graphlet can have a height dimension, a width dimension, and a depth dimension. More generally, a multidimensional graphlet can have three or more than three dimensions. As examples, in addition to the height dimension, width dimension, and depth dimension, a multidimensional graphlet can have further dimension(s), such as a color, a shape, motion, and so forth.
Although reference is made in the present disclosure to 3D graphlets, it is noted that “3D graphlet” is intended to refer to either a graphlet with just three dimensions, or a graphlet with more than three dimensions.
The visualization process represents (at 104) respective attributes of data records with the dimensions of the 3D array. The attributes represented by the dimensions of the 3D array are included in a first set of attributes.
In some examples, the attributes of the first set can include categorical attributes. A categorical attribute is an attribute that has multiple categorical values. An example of a categorical attribute is a country attribute, where the different values of the country attribute represent different countries (which are examples of different categories). In other examples, the attributes of the first set can include numerical attributes. A numerical attribute is an attribute that can have different numerical values from across a range of values. In some cases, the attributes of the first set can include both categorical and numerical attributes.
The visualization process represents (at 106) respective additional attributes of the data records with the dimensions of the 3D graphlets. The additional attributes are part of a second set of attributes that are distinct from the first set of attributes (i.e. the attributes of the first set can be completely distinct from the attributes of the second set). The attributes of the second set can include categorical attributes and/or numerical attributes. In other examples, the first set and the second set of attributes may overlap.
In the ensuing discussion, reference is made to the graphlets along the z dimension as being a row of graphlets (e.g. row 204 shown in
In the example of
The different orientations of the L-shaped 3D graphlets in
In other examples, adjacent 3D graphlets can provide different representations. For example, a 3D graphlet at a first position may represent a visualization of a first subset of attributes, while a 3D graphlet at a neighboring position may represent a visualization of a second, different subset of attributes (where the second subset can overlap or not overlap with the first subset).
Other graphlets assigned reference numerals in
Different characteristics of each 3D graphlet can represent a respective different dimension of data records in a data collection. The different characteristics can include the three dimensions of the 3D graphlet. For example, the height dimension of the 3D graphlet can represent a first attribute, the width dimension of the 3D graphlet can represent a second attribute, and the depth dimension of the 3D graphlet can represent a third attribute. In addition, the 3D graphlet can have another characteristic, such as its color or shape that can represent yet a further attribute of a data record represented by the 3D graphlet. In some examples, the space allotted to each 3D graphlet in the visualization is fixed. As a result, as part of the process of generating the graphlets, the attribute values can be scaled as they are mapped to the graphlet properties (e.g. width, height, etc.) so that the maximum and minimum values in the data just fit within this allotted space. A similar process can be applied if the graphlet color is set to be a simple color ramp (e.g. between red and green) between minimum and maximum values for some other attribute.
In some examples, the 3D array 202 of graphlets can change over time. In this way, another attribute, such as a time attribute, can be represented by the change of the graphlets over time. For example, the graphlets' extents (e.g. height, width, and/or depth) and colors can be animated over time. For example, all the graphlets can start out tall and green, but as time progresses heights can start to reduce, then one graphlet turns red, then all its neighbors in one plane turn red, and so forth.
As further examples, a 3D graphlet can move. As an example, the 3D graphlet can vibrate at a frequency, with different vibration frequencies and/or vibration amplitudes used to represent respective different values of a corresponding attribute. In other examples, other graphlet motions (e.g. rotation, pulsing, etc.) can be used to represent a different attribute.
In other examples, instead of using motion of a 3D graphlet to represent a respective attribute of a data record, the motion of the 3D graphlet can instead be used to draw a user's attention to one or multiple moving 3D graphlets.
In addition, an array of data records represented by the visualization 200 can be explored by turning off and on the visibility of a subset of the graphlets within the visualization 200. For example, the front-most plane of graphlets (those associated with the z attribute with value z0, for example) may be turned off (rendered invisible), so as to better reveal the graphlets in the next plane (associated with the z attribute with value z1). Alternatively, only a second plane of graphlets can be left visible, with the rest of the array turned off. Planes are turned on and off by clicking on a respective axis label (clicking on z0, for example).
Instead of turning on or off graphlets, certain graphlets can be made less prominent while other graphlets can be made more prominent by adjusting the color and/or opacity of the graphlets. For example some graphlets can be made brighter to be more prominent while other graphlets are made less bright to be less prominent. Alternatively, some graphlets can be left opaque so as to be more prominent when other graphlets are made more transparent.
A 3D graphlet is thus a graphical element that can encode a number of different attributes of data. For example, the width, height, depth, and color of the graphical element can represent four respective attributes of data. If graphlet motion is used, potentially more attributes can be represented.
In the example of
In the interactive graphical visualization 200 of
The filter panel 220 includes control elements that are manipulatable by a user to control an appearance of the displayed 3D array 202 of graphlets. The appearance of the 3D array 202 of graphlets can include setting data bounds and thresholds on the mapping of the attribute values to graphlet properties. Instead of using the maximum and minimum values in the data to determine the scaling of the mappings to the graphlet attributes, the user can supply their own data bounds and thresholds, to reduce the impact of wildly anomalous data values, or to focus on particular value ranges in the data. The user can also select from different color mappings that can be used to highlight interesting characteristics of the data, e.g. deviation from an average value. The control of the appearance of the 3D array of graphlets can allow a user to emphasize particular events or patterns in the visualized data.
In further examples, when data records of a data collection are first displayed, the data is scaled so that the maximum and minimum values all fit within a cubical (or other) volume allotted each graphlet. In some examples, a tool in the filter panel 220 can be used to adjust this volume, as well as the spacing between graphlet volumes. The tool can also allow thresholds to be set on any of the displayed graphlet attributes, such that if a displayed value does not exceed the threshold then the graphlet is not displayed. Moreover, a maximum value can be set on the extent of the graphlet in any of its dimensions. When a data record exceeds this maximum, then a marker, e.g. an arrow or other indicator, can be added to the graphlet in that dimension, indicating that the maximum value has been exceeded.
In some examples, the visualization tool can allow a user to manipulate a view of a 3D array of graphlets to best cover the ranges of data the user is interested in. Thresholding can be applied to “thin” the array by not visualizing data records that do not exceed, or alternatively, exceed, a respective threshold). Thinning the array makes it easier to pick out data records that meet certain conditions. Another way to accomplish this is to apply different color maps to the graphlets. These color maps are most simply generated as another data dimension in the input data, that gets mapped to the graphlet's color. The user can choose which of the “color dimensions” to apply to the data from a drop-down menu in the filter panel 220. Alternatively some simple analytics on the input data (e.g. rate of change) can be calculated within the system, and displayed using a color map.
In other examples, 3D graphlets of other shapes can be employed, where these other shapes of 3D graphlets also provide multiple (three or more) dimensions to allow for representation of respective different attributes of data.
As shown in
In the 3D array 202 of graphlets depicted in
At least one additional visual feature can be added to each 3D graphlet to provide an additional indication, in addition to the representation of attribute values by the 3D graphlet.
In further examples, a feature can be added to a 3D graphlet to indicate that a user has chosen a scale that causes one or multiple dimensions of the 3D graphlet to exceed its allotted cubicle volume. Each 3D graphlet is configured to fit within a given cubicle volume within the 3D array 202 in some examples. This is to prevent a situation where size of a graphlet becomes too big that it occupies too large a portion of the 3D array 202.
As discussed above, a 3D array (e.g. 202 in
To select a different group of dimensions to represent using a 3D array of graphlets, an extrusion process can be performed based on selection of a given slice (or plane) of the cube corresponding to the 3D array 502 of graphlets. In
A user can provide an input to indicate that extrusion is desired. This an include clicking and dragging a cursor in a given direction, or selecting a control menu item in a graphical user interface (GUI), as examples. In response to the extrusion selection input, a different 3D array 506 of graphlets is produced, as shown in
At least one attribute of data represented by a 3D array of graphlets can be a hierarchical attribute. For example, an attribute can represent a geographic region. A 3D array of graphlets can initially represent a geographic region attribute at a higher hierarchical level, such as in larger geographic regions, e.g. Western Europe, Eastern Europe, Central Asia, Eastern Asia, South Asia, North America, South America, Africa, etc. However, a user can perform a drilldown selection to values at a lower hierarchical level. For example, a user may wish to visualize data records for different countries in Western Europe, such as Germany, France, Great Britain, and so forth. A drilldown selection can produce a different visualization that includes graphlets that correspond to member countries of Western Europe. At later time, a user can collapse the data records corresponding to the member countries of Western Europe back to the larger region, namely Western Europe.
In accordance with some implementations, different views of a 3D array of graphlets can be provided.
To reduce occlusion between graphlets, a “semi-orthographic projection” technique can be used.
The angle of this semi-orthographic view can be arranged to provide an orientation that optimizes the view down each row, to reduce occlusion of neighboring graphlets. The orientation of each row is the same in a 3D array of graphlets.
With the semi-orthographic view, rows of graphlets can be rendered with perspective, while still satisfying the property that each row has a same length and a same angle with respect to a reference axis. These perspective cues are useful to convey depth, which may not be possible in a fully orthographic projection. In particular, the semi-orthographic view allows the 3D visualization to be rendered using stereo-3D rendering techniques (using a pair of perspective cameras) creating true stereo-3D depth from disparity.
A user can select between either the perspective view or semi-orthographic view, by selecting a user interface element in the filter panel 220 of
The semi-orthographic projection of the rows 702, 704, 706, and 710 are shown in
In some implementations, various interactions can be performed with respect to a visualized 3D array of graphlets. In addition to the various interactions discussed above, other interactions with respect to a visualized 3D array of graphlets are also possible.
For example, a user can perform navigation with respect to the 3D array of graphlets, including orbiting, zooming and panning around the 3D array. In the case of the semi-orthographic view, orbiting can be replaced by changing the angle between the row axis and the viewpoint, while panning and zooming can involve moving the viewpoint with respect to the 3D array of graphlets while keeping the angle unchanged. In the case of orbiting, the angular distance between each row may be changed to prevent the views overlapping, resulting in one row occluding another.
In other examples, individual graphlets can be selected, e.g. with a mouse click or a touch input on a touchscreen, and the properties associated with the selected graphlet can be displayed in a property panel (e.g. 208 in
As discussed above, each array dimension can include hierarchies of category groups. Expandable or collapsible elements can be represented by a “+” or “−” icon next to the respective axis label; clicking on this icon can initiate the group pension or collapse.
The processor(s) 802 can be coupled to a non-transitory machine-readable or computer-readable storage medium (or storage media) 806. The storage medium for storage media) 806 can store machine-readable or machine-executable instructions that are executable on the processor(s) 802. The machine-readable or machine-executable instructions can include graphlet visualization instructions 808 to perform visualization as discussed above. In some examples, instructions for graphlet placement can be executed in a computer that is separate from another computer that executes instructions for rendering interactive visualizations containing the arrays of graphlets. Although not shown, a user input device (e.g. mouse device, touchscreen) can be provided to allow for user interaction, and a display device can be provided to display a visualization. Data to be visualized can be stored in the storage medium or storage media 806) or in a storage medium at another system.
The storage medium (or storage media) 806 can be implemented with one or multiple different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/062847 | 10/29/2014 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2016/068901 | 5/6/2016 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6222557 | Pulley, IV | Apr 2001 | B1 |
6301579 | Becker | Oct 2001 | B1 |
6400366 | Davies | Jun 2002 | B1 |
6707454 | Barg | Mar 2004 | B1 |
7639256 | Yablonski et al. | Dec 2009 | B1 |
8797319 | Lin et al. | Aug 2014 | B2 |
9465891 | Kagan | Oct 2016 | B1 |
9665988 | Djorgovski | May 2017 | B2 |
9779077 | van den Broek | Oct 2017 | B2 |
20030071814 | Jou | Apr 2003 | A1 |
20040075656 | Kimia | Apr 2004 | A1 |
20050028198 | Robbins | Feb 2005 | A1 |
20060061589 | Suyama | Mar 2006 | A1 |
20070097113 | Lee | May 2007 | A1 |
20070211056 | Chakraborty et al. | Sep 2007 | A1 |
20080103863 | Holm-Petersen | May 2008 | A1 |
20090135175 | Lobregt et al. | May 2009 | A1 |
20090262131 | Suntinger | Oct 2009 | A1 |
20100042913 | Chamberlain et al. | Feb 2010 | A1 |
20110131250 | Stolte | Jun 2011 | A1 |
20110138265 | Balaram et al. | Jun 2011 | A1 |
20120060078 | Beauchamp et al. | Mar 2012 | A1 |
20120062549 | Woo | Mar 2012 | A1 |
20120200567 | Mandel | Aug 2012 | A1 |
20120317508 | Schone | Dec 2012 | A1 |
20130097563 | Pacheco Rodrigues Velho | Apr 2013 | A1 |
20150205840 | Yerli | Jul 2015 | A1 |
20150229375 | Vook | Aug 2015 | A1 |
20150294275 | Richardson | Oct 2015 | A1 |
Entry |
---|
Benjamin Bach, Emmanuel Pietriga and Jean-Daniel Fekete; Visualizing Dynamic Networks with Matrix Cubes; Apr. 26, 2014 to May 1, 2014; http://hal.inria.fr/docs/00/93/20/90/PDF/Bach2014cubix.pdf. |
Hewlett-Packard Development Company, L.P., International Application No. PCT/US2013/063978, entitled “Displaying Multivariate Data in Multiple Dimensions,” filed Oct. 9, 2013 (20 pages). |
Mario Roadster and M. Anthony Moody; Polychromatic Plots: Graphical Display of Multidimensional Data; Sep. 2008; http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2583940/. |
Number | Date | Country | |
---|---|---|---|
20170228917 A1 | Aug 2017 | US |