Displaying visualizations linked to one or more data source queries

A computer readable storage medium includes executable instructions to provide a Graphical User Interface with a plurality of visualization types and a semi-structured workspace. A drag-and-drop of a visualization type into a drop zone in the semi-structured workspace is received. The drop zone corresponds to a location in the semi-structured workspace where an associated visualization is displayed. A link is created between the associated visualization and a query to a data source.

BRIEF DESCRIPTION OF THE INVENTION

This invention relates generally to visualizing data. More particularly, this invention relates to displaying a variety of visualizations for one or more data source queries simultaneously.

BACKGROUND OF THE INVENTION

Data analysis tools provide a user with one of two types of workspace, a freeform workspace or a structured workspace. A freeform workspace provides a great deal of flexibility in layout. Indeed, it often provides more flexibility than is needed for data analysis and it becomes time consuming to layout the required information. A structured workspace is too rigid. While the process of laying out the required information is fast, the lack of flexibility prevents the user from viewing the data in an optimal format.

In view of the foregoing, it would be highly desirable to develop a data analysis workspace that finds a middle ground between flexibility and speed during layout.

SUMMARY OF INVENTION

The invention includes a computer readable storage medium with executable instructions to provide a Graphical User Interface with a plurality of visualization types and a semi-structured workspace. A drag-and-drop of a visualization type into a drop zone in the semi-structured workspace is received. The drop zone corresponds to a location in the semi-structured workspace where an associated visualization is displayed. A link is created between the associated visualization and a query to a data source.

The invention also includes a computer readable storage medium with executable instructions to provide a Graphical User Interface with a plurality of visualizations. The plurality of visualizations are linked to a query to a data source. An action is received within a visualization of the plurality of visualizations and the action updates the query to the data source. The plurality of visualizations is updated based on the results of the query.

DETAILED DESCRIPTION OF THE INVENTION

The following terminology is used while disclosing embodiments of the invention:

An associated visualization is a visualization that is displayed as a result of drag-and-dropping a visualization type into a semi-structured workspace. An associated visualization is the same type of visualization as the drag-and-dropped visualization type.

Axis swapping is the action of replacing a data hierarchy on an x-axis of a chart or graph with a data hierarchy on a y-axis of the chart or graph and vice versa.

A chart is a collection of visual elements used to convey information (e.g. a pie chart, a bar graph, a scatter plot, a line graph). A chart is a visualization.

A click is a depression and release of a button.

Column expansion is the action of opening out or collapsing of a data hierarchy on an x-axis of a crosstab.

A crosstab (abbreviation of cross-tabulation) is a visualization of data that displays a joint distribution of two or more variables simultaneously. Crosstabs are usually presented in a matrix format. Each cell shows a value associated with a specific combination of row and column headings.

Drag-and-drop is the action of clicking on an item and dragging it to a different location or onto another item. In general, it can be used to invoke many kinds of actions, such as copying or moving, or create various types of associations between two items.

Drilldown is the action of progressing from a first data presentation to a more detailed data presentation by focusing in on information of interest to a user. This can be done, e.g., by accessing information starting with a general category and moving through a hierarchy to obtain specific information relating to the general category.

Drillup is the action of progressing from a first data presentation to a broader data presentation by summarizing detailed information. This can be done, e.g., by accessing information starting with specific information relating to a general category and moving up through a hierarchy to obtain information relating to the general category.

A drop zone is an area of a semi-structured workspace into which a user can drag-and-drop a visualization type. A drop zone corresponds to a location, usually larger than the drop zone, in the semi-structured workspace where a visualization associated with the visualization type will be displayed.

A hotkey is a key or set of keys on an input device that has a specific function in an application.

Member selection is the action of indicating which elements in a data hierarchy on an x-axis of a chart or graph and a data hierarchy on a y-axis of the chart or graph to include in their respective hierarchies.

A semi-structured workspace is a distinct section of a Graphical User Interface that accepts user input. More specifically, it allows a user to select one or more visualizations and arrange them in a limited number of configurations.

Point-and-click is the action of a user moving a cursor to a certain location on an output device and then clicking a button on a mouse or other pointing device or pressing a button or key on another form of input device.

Row expansion is the action of opening out or collapsing of a data hierarchy on a y-axis of a crosstab.

A table maps the logical structure of a set of data into a series of columns or rows. Thus, a table is a visualization. To facilitate representation in two dimensions, higher-dimensional tables of data are often represented in an exploded view comprising a plurality of two dimensional tables. A table can be rectangular, triangular, octagonal, etc. A table can have row and column headings, where each cell in a table can show the value associated with the specific combination of row and column headings. Some tables can hold charts or maps in their cells; this is a spatially economic way to display many charts with common axes. A table is to be conceptually differentiated from a database table.

Timing out is when a predefined length of time runs out.

A visualization is a graphic display of quantitative information. Types of visualizations include charts, tables, crosstabs, record sets, graphics and metadata panels.

A visualization type is a form of a graphic display of quantitative information. Types of visualizations include charts, tables, crosstabs, record sets, graphics and metadata panels. A visualization type may be represented by a Graphical User Interface widget which is associated with a visualization.

FIG. 1illustrates a computer100configured in accordance with an embodiment of the invention. The computer100includes standard components, including a central processing unit102and input/output devices104, which are linked by a bus106. The input/output devices104may include a keyboard, mouse, touch screen, monitor, printer, and the like. A network interface circuit108is also connected to the bus106. The network interface circuit (NIC)108provides connectivity to a network (not shown), thereby allowing the computer100to operate in a networked environment.

A memory110is also connected to the bus106. In an embodiment, the memory110stores one or more of the following modules: an operating system module112, a data access module114, a visualization module116and a Graphical User Interface (GUI) module118.

The operating system module112may include instructions for handling various system services, such as file services or for performing hardware dependant tasks.

The data access module114includes executable instructions to apply the data source query (e.g., a Structured Query Language (SQL) query, a MultiDimensional eXpressions (MDX) query, a Data Mining Extensions (DMX) query) generated by the visualization module116to an underlying data source (not shown), which may form a portion of computer100or may be accessed as a separate networked machine through the network interface circuit108.

The visualization module116includes executable instructions to receive a drag-and-drop of a visualization type into a drop zone in the workspace and create a link between the associated visualization and a previously defined data source query. The visualization module116also includes executable instructions to receive actions performed on the visualizations and update the data source query appropriately.

The GUI module118includes executable instructions to render a GUI with a semi-structured workspace populated by a selection of data visualizations. The GUI module118may rely upon standard techniques to produce graphical components of a user interface, e.g., windows, icons, buttons and menus.

The executable modules stored in memory110are exemplary. It should be appreciated that the functions of the modules may be combined. In addition, the functions of the modules need not be performed on a single machine. Instead, the functions may be distributed across a network, if desired. Indeed, the invention is commonly implemented in a client-server environment with various components being implemented at the client-side and/or the server-side. It is the functions of the invention that are significant, not where they are performed or the specific manner in which they are performed.

FIG. 2illustrates a high level workflow that may be implemented by the computer100while executing instructions from the data access module114or the visualization module116. The processing operations200illustrate the process of a user's interactions with a semi-structured workspace in an embodiment of the invention.

In the first processing operation202, the visualization module116waits for input from the user202. If the user swaps an existing visualization within the semi-structured workspace with another existing visualization (202—Visualization drag-and-drop), the visualization module116receives the drag-and-drop of the visualization204, links the visualization to the appropriate query208and the GUI module118displays the visualization210. The visualization module116then waits for another input202. If the user inserts a new visualization into the semi-structured workspace (202—Visualization type drag-and-drop), the visualization module116receives the visualization type drag-and-drop206, links the visualization to the appropriate query208and the GUI module118displays the visualization210. The visualization module116then waits for another input202. If the user performs an action on one of the existing visualizations (e.g., drilldown, row expansion, axis swap) (202—Action), the visualization module receives the action212, updates the associated query214, retrieves a new dataset216and the GUI module118refreshes the visualization210. The visualization module116then waits for another input202.

FIG. 3illustrates a Graphical User Interface (GUI)300used to implement an embodiment of the invention. The toolbar307includes the visualization types that are used to add visualizations to the semi-structured workspace314. In an embodiment, the toolbar307includes visualization types in the form of icons for crosstabs302, pie charts304, vertical bar graphs306, horizontal bar graphs308, line graphs310and three-dimensional bar graphs312. In other embodiments, the visualization types are represented in the toolbar as list items, text labeled buttons and the like. In other embodiments, the visualization types also include graphics, metadata panels and record sets. In an embodiment, a crosstab313is automatically displayed when a data source query is defined. In other embodiments, the user must specify the first visualization or another visualization is automatically displayed.

FIG. 4illustrates the drop zones for varied configurations of the semi-structured workspace in an embodiment of the invention. A drop zone is a designated area in the semi-structured workspace that corresponds to a visualization display location in the semi-structured workspace. If a visualization type or previously specified visualization is dragged-and-dropped into a drop zone, it will be displayed in the corresponding location. Drop zones are indicated by “Z” and previously specified visualizations by “V”.

The configuration402illustrates the drop zones available when the semi-structured workspace contains one visualization412. As indicated by the dotted lines, in an embodiment, the drop zones for this configuration402are in the top404, bottom408, left406and right410of the semi-structured workspace. Dropping a visualization type in any of these four drop zones404-410triggers the visualization module116to divide the workspace in two, displaying the new visualization in the location corresponding to the drop zone, and the previously specified visualization412in the remaining area. In an embodiment, the workspace is divided in half. The top drop zone404corresponds to a top portion of the semi-structured workspace, the right drop zone410corresponds to a right portion of the semi-structured workspace, and so on.

The configuration414illustrates that there are no drop zones available when the semi-structured workspace contains four visualizations416-422. In an embodiment, the semi-structured workspace contains a maximum of four visualizations. In other embodiments, more visualizations are allowed and drop zones are available in this case.

The configuration424illustrates that there are three drop zones on the left426-430and three drop zones on the right432-436of the semi-structured workspace when it is divided in two,438and440, horizontally. In an embodiment, a visualization covers either one or two adjacent quadrants of the semi-structured workspace when there is more than one visualization displayed. The top left drop zone corresponds to the top left quadrant of the semi-structured workspace. The new visualization shares the top two quadrants of the semi-structured workspace with the visualization438currently in that location. The middle left drop zone corresponds to the left two quadrants of the workspace, the visualization module116shrinking the previously specified visualizations,438and440, to be displayed in the top and bottom right quadrants. The bottom left drop zone corresponds to the bottom left quadrant. The new visualization shares the bottom two quadrants of the workspace with the previously specified visualization440in that location. The behavior of the right set of drop zones432-436is a mirror image to that of the left drop zones.

The configuration442illustrates that there are three drop zones at the top444-448and three drop zones at the bottom450-454of the semi-structured workspace when it is divided in two,456and458, vertically. The behavior of these drop zones is very similar to those of configuration424; they are simply rotated ninety degrees.

The configuration460illustrates that there are two available drop zones462and464when the semi-structured workspace is divided into three sections466-470with a horizontal major section. In an embodiment, a major section of the semi-structured workspace consists of two adjacent quadrants and a minor section is a single quadrant. The left drop zone462corresponds to the left quadrant of the major section. The visualization module116shrinks the previously specified visualization466in the major section to the right quadrant. The right drop zone464corresponds to the right quadrant of the major section. The visualization module116shrinks the previously specified visualization466in the major section to the left quadrant. The major section can be at the top or bottom of the semi-structured workspace.

The configuration472illustrates that there are two drop zones,474and476, available when the workspace is divided into three sections478-482with a vertical major section. The behavior of these drop zones is very similar to those of configuration460; they are simply rotated ninety degrees. The major section can be at the left or right of the semi-structured workspace.

FIGS. 5A and 5Billustrate the process of adding a visualization to the semi-structured workspace314that already contains a single visualization313in an embodiment of the invention. In an embodiment, when the user drags a visualization type501onto the semi-structured workspace314, a chart icon500appears at the tip of the mouse pointer. When the chart icon500is hovered over a spot on the semi-structured workspace314, the visualization module116highlights an area502of the workspace314to indicate the location that the new visualization will appear. When the visualization type501is dropped, the visualization module116receives the visualization type drag-and-drop and displays the pie chart visualization506in the location corresponding to the previously highlighted area502. The previously displayed crosstab313shrinks to the lower portion508of the workspace314. Note that the visualization module116automatically links the pie chart visualization506to a previously defined data source query and it is populated with data when it is first displayed.

FIGS. 6A and 6Billustrate two example locations to add a third visualization. In an embodiment, a third visualization takes up a major portion604of the semi-structured workspace314or a minor portion608. In an embodiment, if the third visualization is dropped into the major portion604, then the previously existing pie chart visualization600and crosstab visualization602shrink to half their current sizes, being displayed in the top and bottom left quadrants. In an embodiment, if the third visualization is dropped into the minor portion608, then the previously existing pie chart visualization606shrinks to the half its current size, being displayed in the top left quadrant. The previously existing crosstab visualization602remains in its original state. In an embodiment, the third visualization may also be dropped into the left half, the top-left quadrant, the bottom-left quadrant or the bottom-right quadrant of the workspace in addition to those areas illustrated inFIGS. 6A and 6B.

FIG. 7illustrates a configuration of the semi-structured workspace314containing four visualizations: a pie chart700, a vertical bar graph702, a crosstab704and a line graph706. In an embodiment, the workspace holds a maximum of four visualizations. This number is larger or smaller in other embodiments (e.g., 2, 6, 8, 10, 12, 14, 16).

FIGS. 8A and 8Billustrate the process of replacing a currently existing visualization with a new visualization. In an embodiment, the user may drag-and-drop a visualization type into a location already containing a visualization. When the desired location800is highlighted, the user drops the visualization type to initiate a replace. The new visualization808is displayed in the desired location800and is automatically linked to the data source query that was linked to the previous visualization801. The other previously existing visualizations—the vertical bar chart802, the crosstab804and the line graph806—do not change.

In an embodiment, the user may also replace a currently existing visualization with another currently existing visualization. This process is referred to as swapping. In this case, the user drags a currently existing visualization into the location of another currently existing visualization. Once the desired location is highlighted, the user drops the visualization into the location. The visualization module116receives the visualization drag-and-drop and exchanges the locations of the two visualizations. The dragged-and-dropped visualization is displayed in the new location, and the visualization that was previously displayed there is displayed in the location of dragged-and-dropped visualization.

FIG. 9illustrates row expansion in an embodiment of the invention. When the user clicks on an expansion button (e.g., a plus sign) for a category in the data hierarchy of the crosstab904, the visualization module116receives the row expansion action, updates the data source query linked to the visualization and the data access module114retrieves an updated dataset. The visualization module116then refreshes the crosstab904and all associated visualizations. The row hierarchy category is expanded to reveal sub-categories and the expansion button is changed to a collapse button (e.g., a minus sign) as in the crosstab904. As illustrated by the three-dimensional bar chart900, the vertical bar chart902and the line graph906, different visualizations represent this expansion in different ways. The three-dimensional bar chart900displays the subcategories by adding a third dimension to the chart. The vertical bar chart902displays the subcategories by adding a bar for each subcategory in each category on the x-axis. The line graph906displays the subcategories by adding a line for each subcategory. Note that all the visualizations still display the year data as in previous figures, but they also show the data for each quarter as broken down by the sub-categories.

A row expansion is reversed by clicking on a collapse button. The visualization module116receives the row collapse action, updates the data source query linked to the visualization and the data access module114retrieves an updated dataset. The visualization module116then refreshes the crosstab and all associated visualizations. The row hierarchy category is collapsed down to the parent category and the collapse button is changed to an expansion button. The associated visualizations are collapsed to display data for the parent category and any categories higher in the data hierarchy.

Column expansion and column collapse are similar actions that the user can perform. These actions behave in the same way as their row action counterparts. The differences being that columns are expanded and collapsed in the crosstab rather than rows, and the categories on the x-axis of the other visualizations are affected.

FIG. 10illustrates the result of a drilldown action. In an embodiment, the user double-clicks on an element in a visualization (e.g., a line in a graph, a portion of a pie chart, a data hierarchy category) to drilldown. Upon specifying a drilldown action, the visualization module116updates the associated data source query and the data access module114returns a new dataset. The visualization module116updates all visualizations associated with the data source query (i.e., the three-dimensional bar chart1000, the vertical bar graph1002and the line graph1006) to reflect the new dataset. For example, after drilling down on the “Colas” category, the associated visualizations are updated to display only the sub-categories of the “Colas” category as illustrated by the column headers of the crosstab1004and the x-axis values of the three-dimensional bar graph1000, the vertical bar graph1002and the line graph1006.

In an embodiment, a drillup action can also be performed. This reverses the results of a drilldown. Upon specifying a drillup action, the visualization module116updates the associated data source query and the data access module114returns a new dataset. The visualization module116updates all visualizations associated with the data source query to reflect the new dataset. For example, after rolling up on the “Colas” sub-categories, the associated visualizations are updated to display all the categories at the parent category level.

In an embodiment, similar results are gained by performing a member selection. In a member selection, the user indicates the specific categories to be displayed in the visualizations. Categories are selected from any level of a hierarchy, and selecting a parent category does not require that the sub-categories be included. Once the members have been indicated, the visualization module116receives the member selection action and updates the associated data source query. The data access module114retrieves a new dataset and the visualization module116refreshes all visualizations linked to the data source query.

In an embodiment, an axis swap action can also be performed. When the user requests an axis swap, the visualization module116receives the axis swap action and updates the associated data source query. The data access module114retrieves a new dataset and the visualization module116refreshes all visualizations linked to the data source query. The result is that the original row data hierarchy becomes the column data hierarchy and the column data hierarchy becomes the row data hierarchy in crosstab visualizations. In chart visualizations the x-axis becomes the y-axis and the y-axis becomes the x-axis.

In an embodiment, a visualization may be disconnected from its associated visualizations. A disconnected visualization is not affected by actions performed on its previously associated visualizations. Likewise, actions performed on a disconnected visualization do not affect its previously associated visualizations.

FIG. 11illustrates visualizations linked to two distinct data source queries. In an embodiment, a distinct data source query may be defined for each visualization displayed. In an embodiment, this is achieved by defining a new query and linking an existing visualization or a new visualization to the new query. In an embodiment, different data source queries can access different data sources. The crosstab1100and the bar chart1102are linked to one query which breaks down product by market. The crosstab1104and the pie chart1106are linked to a second query which breaks down product by year. If an action is performed on either of the crosstabs,1100or1104, when the visualization module116updates the crosstab, its associated chart visualization,1102or1116respectively, is also updated. Similarly, if an action is performed on either of the chart visualizations, the visualization module116updates both the chart visualization and associated crosstab. If any of the visualizations,1100-1106, are replaced by a new visualization, the new visualization is automatically linked to the data source query that was linked to the replaced visualization.

In an embodiment, an alternate drop mode is also used.FIG. 12illustrates the drop zones ofFIG. 4with the addition of exemplary drop zone selection orders. In an embodiment, the user activates the alternate drop mode by pressing an activation hotkey. In other embodiments, the alternate drop mode is activated by clicking a visualization type, clicking an alternate drop mode button, holding down a visualization type button, holding down a hotkey and the like. Once the alternate drop mode is activated, the visualization module116responds to repeated presses of another hotkey by moving through a list of available drop zones in a predetermined order. The configurations1200each have a unique drop zone selection order, which includes all the drop zones—to insert a new visualization—and all the previously specified visualizations—to perform a replace. For example, the drop zone selection order for configuration402ofFIG. 12is a counter-clockwise movement through the drop zones404-410followed by the previously specified visualization412. In an embodiment, the other configurations414,424,442,460and472follow similar patterns. As the user moves through the drop zones404-410and visualizations412, the location corresponding to the currently selected drop zone or visualization is highlighted in the same fashion as in the drag-and-drop method. Once the user has selected the desired drop zone for the new visualization, the new visualization is dropped to the corresponding location by pressing the activation hotkey again. In other embodiments, the visualization is dropped by timing out, releasing a visualization type button, releasing a hotkey and the like. In an embodiment, the alternate drop mode is deactivated when the visualization is dropped.

In an embodiment, the user may also add visualizations to the semi-structured workspace by selecting a visualization type within the toolbar. In an embodiment, this is done by clicking a visualization type button. The associated visualization appears in the semi-structured workspace in a predefined location based on the current visualization configuration.