IP Library Granted Patent US 10,853,383
Granted Patent B2
US 10,853,383 · App. 16/582,815 · Granted Dec 1, 2020

Interactive parallel coordinates visualizations

Inventors: Marshall Chalmers Agnew (Seattle, WA); Michael Porath (San Francisco, CA); Patrick Wied (London, GB); Clark Eugene Mullen (San Mateo, CA)
Assignee: SPLUNK INC.
G06F16/248G06F16/2264G06F16/26G06T11/206
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,853,383
App. No.
16/582,815
Granted
Dec 1, 2020
Kind
B2
Abstract

Disclosed are a system and a method for providing user-interactive parallel coordinates charts. In an embodiment, a machine data search and analysis system retrieves search results including a plurality of events, each of the events containing time-stamped data in response to a search query. The system identifies a plurality of characteristics from the data corresponding to the events. The system causes display of a multiple-dimensional chart (e.g., a parallel coordinates chart) depicting the data corresponding to the events. The multiple-dimensional chart includes a plurality of axes. Each of the axes corresponds to one of the identified characteristics. The multiple-dimensional chart further includes a plurality of poly lines representing the events. Each of the poly lines includes a plurality of vertices on the axes.

Claims (97)

1. A method comprising:

in response to a search query, retrieving search results including a plurality of events, each of the plurality of events containing time-stamped data;

identifying a plurality of characteristics from the time-stamped data corresponding to the plurality of events;

causing display of an interactive multiple-dimensional chart based on the time-stamped data corresponding to the plurality of events, the interactive multiple-dimensional chart including a plurality of axes, each of the axes corresponding to one of the identified characteristics, the interactive multiple-dimensional chart further including a plurality of polylines representing the events, each of the polylines including a plurality of vertices on the axes, wherein causing display of the interactive multiple-dimensional chart includes:

formatting the time-stamped data of the plurality of events into a data object that is readable by a code library for generating a static visualization;

receiving state information that is indicative of a current state of display of the interactive multiple-dimensional chart, wherein use of the state information enables the interactive multiple-dimensional chart to be displayed at a plurality of different devices without saving a rendering of the interactive multiple-dimensional chart; and

processing the data object using the code library to render the interactive multiple-dimensional chart based on the received state information;

in response to a signal indicative of a user interaction with an individual axis of the plurality of axes of the interactive multiple-dimensional chart, identifying a subset of the plurality of events that correspond with the individual axis; and

causing dynamic updating of display of the interactive multiple-dimensional chart based on a processing of the subset of the plurality of events.

2. The method of claim 1 , wherein the interactive multiple-dimensional chart is an interactive parallel coordinates chart and the plurality of axes are parallel to each other.

3. The method of claim 1 , wherein for an individual polyline of the plurality of polylines, a position of an individual vertex of the individual polyline on an individual axis is indicative of a value of a particular characteristic corresponding to the individual axis.

4. The method of claim 1 , wherein the time-stamped data comprises machine data.

5. The method of claim 1 , wherein the time-stamped data comprises real-time event data.

6. The method of claim 1 , wherein causing display of the interactive multiple-dimensional chart includes processing the plurality of events using a code library for generating a static visualization.

7. The method of claim 1 , wherein causing display of the interactive multiple-dimensional chart includes:

formatting the time-stamped data corresponding to the plurality of events for use with a code library for generating a static visualization; and

rendering a formatted version of the time-stamped data using the code library.

8. The method of claim 1 , further comprising:

repeatedly and automatically updating the interactive multiple-dimensional chart when the search results are updated with new events.

9. The method of claim 1 , wherein the plurality of events are representative of products or data points that are indicated in the time-stamped data corresponding to the plurality of events.

10. The method of claim 1 , wherein a color of each individual polyline of the plurality of polylines is indicative of a position of a vertex of the individual polyline on a particular axis of the plurality of axes.

11. The method of claim 1 , wherein a color of each individual polyline of the plurality of polylines is indicative of a value or a value range of a particular characteristic for an event represented by the individual polyline, or is indicative of a category of a particular characteristic for the event represented by the individual polyline.

12. The method of claim 1 , further comprising:

in response to a user interacting with the interactive multiple-dimensional chart or the user changing the search query:

reordering the axes of the interactive multiple-dimensional chart; and

causing changes of the polylines of the interactive multiple-dimensional chart in response to the reordering of the axes.

13. The method of claim 1 , further comprising:

in response to a user input, causing dynamic switching of the interactive multiple-dimensional chart between a categorical color mode and a sequential color mode;

wherein in the sequential color mode, a color of an individual polyline of the plurality of polylines denotes a value range of a particular characteristic for an event represented by the individual polyline; and

wherein in the categorical color mode, a color of the individual polyline of the plurality of polylines denotes a category of a particular characteristic for the event represented by the individual polyline.

14. The method of claim 1 , wherein the plurality of polylines in the interactive multiple-dimensional chart are displayed in a plurality of colors, wherein a color of an individual polyline of the plurality of polylines denotes a value range of a particular characteristic for an event represented by the individual polyline, the method further comprising:

in response to a user input, adjusting value ranges of the particular characteristic for the plurality of colors; and

causing the colors of the polylines to dynamically change based on the adjusted value ranges.

15. The method of claim 1 , further comprising:

generating a user interface element for users to specify a time range of events as part of the search query.

16. The method of claim 1 , further comprising:

in response to the signal, generating a filter specifying a value range of a particular characteristic represented by the individual axis;

wherein the subset of the plurality of events is identified by applying the filter to the search results.

17. The method of claim 1 , further comprising:

in response to the signal, generating a filter specifying a value range of a particular characteristic represented by the individual axis;

wherein causing dynamic updating of display of the interactive multiple-dimensional chart includes:

reducing intensities of polylines representing events that are excluded by the filter; and/or

highlighting polylines representing events that are selected by the filter.

18. The method of claim 1 , further comprising:

in response to the signal, generating a filter specifying a value range of a particular characteristic represented by the individual axis;

wherein causing dynamic updating of display of the interactive multiple-dimensional chart includes:

removing polylines representing events that are excluded by the filter;

receiving a second signal indicative of a user input clearing the filter; and

displaying polylines representing events that are excluded by the filter and polylines representing events that are selected by the filter.

19. The method of claim 1 , further comprising:

in response to the signal, generating a first filter specifying a first value range of a first particular characteristic represented by the first individual axis;

receiving a second signal indicative of a second user interaction with a second individual axis of the plurality of axes of the interactive multiple-dimensional chart; and

in response to the second signal, generating a second filter specifying a second value range of a second particular characteristic represented by the second individual axis;

wherein causing dynamic updating of display of the interactive multiple-dimensional chart includes highlighting polylines representing events that are selected by the first filter and the second filter.

20. The method of claim 1 , further comprising:

in response to a second signal indicative of a second user interaction with a second individual axis of the plurality of axes of the interactive multiple-dimensional chart, identifying a second subset of the plurality of events that correspond with the second individual axis; and

generating a second interactive multiple-dimensional chart visualizing time-stamped data corresponding to the second subset of the plurality of events by processing the second subset of the plurality of events.

21. The method of claim 1 , further comprising:

in response to the signal, generating a filter specifying a value range of a particular characteristic represented by the individual axis;

identifying a set of new coordinate ranges for the plurality of axes, based on the filter specifying the value range of the particular characteristic; and

generating a second interactive multiple-dimensional chart visualizing time-stamped data of the subset of the plurality of events selected by the filter, the second interactive multiple-dimensional chart including a second plurality of axes with the set of new coordinate ranges.

22. The method of claim 1 , further comprising:

in response to a cursor being positioned over an individual polyline of the plurality of polylines, displaying a total number of the plurality of events that are represented by the individual polyline.

23. The method of claim 1 , further comprising:

in response to a cursor being positioned over an individual polyline of the plurality of polylines, displaying a total number of the plurality of events that share common characteristics represented by vertices of the individual polyline.

24. The method of claim 1 , further comprising:

in response to a cursor being positioned over an individual polyline of the plurality of polylines, displaying a hovering window that includes additional information related to the individual polyline.

25. The method of claim 1 , further comprising:

in response to a cursor being positioned over an individual polyline of the plurality of polylines, displaying an event represented by the individual polyline.

26. The method of claim 1 , wherein the identified subset of the plurality of events are within a value range of a particular characteristic represented by the individual axis.

27. The method of claim 1 , further comprising:

in response to the signal, updating a state information file indicative of a current state of the interactive multiple-dimensional chart with state information indicative of the user interaction with the individual axis of the plurality of axes of the interactive multiple-dimensional chart;

wherein the subset of the plurality of events is identified based on the state information in the state information file;

wherein causing dynamic updating of display of the interactive multiple-dimensional chart includes:

discarding a first data object used to render a current version of the multiple-dimensional chart;

formatting the time-stamped data corresponding to the subset of the plurality of events into a second data object; and

processing the second data object to render an updated version of the multiple-dimensional chart.

28. A computer system comprising:

processor; and

a storage device having instructions stored thereon, which when executed by the processor cause the system to:

in response to a search query, retrieve search results including a plurality of events, each of the plurality of events containing time-stamped data;

identify a plurality of characteristics from the time-stamped data corresponding to the plurality of events;

cause display of an interactive multiple-dimensional chart based on the time-stamped data corresponding to the plurality of events, the interactive multiple-dimensional chart including a plurality of axes, each of the axes corresponding to one of the identified characteristics, the interactive multiple-dimensional chart further including a plurality of polylines representing the events, each of the polylines including a plurality of vertices on the axes, wherein causing display of the interactive multiple-dimensional chart includes:

formatting the time-stamped data of the plurality of events into a data object that is readable by a code library for generating a static visualization;

receiving state information that is indicative of a current state of display of the interactive multiple-dimensional chart, wherein use of the state information enables the interactive multiple-dimensional chart to be displayed at a plurality of different devices without saving a rendering of the interactive multiple-dimensional chart; and

processing the data object using the code library to render the interactive multiple-dimensional chart based on the received state information;

in response to a signal indicative of a user interaction with an individual axis of the plurality of axes of the interactive multiple-dimensional chart, identify a subset of the plurality of events that correspond with the individual axis; and

cause dynamic update of display of the interactive multiple-dimensional chart based on a processing of the subset of the plurality of events.

29. A non-transitory computer readable medium containing instructions, execution of which in a computer system causes the computer system to:

in response to a search query, retrieve search results including a plurality of events, each of the plurality of events containing time-stamped data;

identify a plurality of characteristics from the time-stamped data corresponding to the plurality of events;

cause display of an interactive multiple-dimensional chart based on the time-stamped data corresponding to the plurality of events, the interactive multiple-dimensional chart including a plurality of axes, each of the axes corresponding to one of the identified characteristics, the interactive multiple-dimensional chart further including a plurality of polylines representing the events, each of the polylines including a plurality of vertices on the axes, wherein causing display of the interactive multiple-dimensional chart includes:

formatting the time-stamped data of the plurality of events into a data object that is readable by a code library for generating a static visualization;

receiving state information that is indicative of a current state of display of the interactive multiple-dimensional chart, wherein use of the state information enables the interactive multiple-dimensional chart to be displayed at a plurality of different devices without saving a rendering of the interactive multiple-dimensional chart; and

processing the data object using the code library to render the interactive multiple-dimensional chart based on the received state information;

in response to a signal indicative of a user interaction with an individual axis of the plurality of axes of the interactive multiple-dimensional chart, identify a subset of the plurality of events that correspond with the individual axis; and

cause dynamic update of display of the interactive multiple-dimensional chart based on a processing of the subset of the plurality of events.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2019
From: AGNEW, MARSHALL CHALMERS; PORATH, MICHAEL; WIED, PATRICK; MULLEN, CLARK EUGENE
To: SPLUNK INC.
Reel/Frame 050490/0865 →