Method and user interface for visually analyzing data visualizations with multi-row calculations - Patents.com
An object model in data visualization applications addresses the challenge of complex data sources by structuring relationships and providing detailed views, ensuring accurate and user-friendly visualization.
Patent Information
- Application Number
- JP2022518271
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-11-05
- Filing Date
- 2020-09-30
- Publication Date
- 2024-12-19
- Estimated Expiration
- 2040-09-30
AI Technical Summary
Existing data visualization applications struggle with generating accurate and user-friendly visualizations from complex or multiple data sources, often leading to unclear or unexpected results due to unclear data relationships and missing data elements.
An object model is used to structure data relationships, allowing users to build visualizations by selecting data fields, with the system recommending appropriate combinations and preventing unusable ones, and providing detailed views of aggregated data through a tree-like data model.
This approach facilitates clear and accurate data visualization by ensuring correct aggregation and display of data relationships, even for non-experts, by using an object model to manage complex data sources and provide detailed views of aggregated data.
Smart Images

Figure 0007603062000001 
Figure 0007603062000002 
Figure 0007603062000003
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is related to U.S. patent application Ser. No. 16 / 236,611, filed December 30, 2018, entitled "Generating Data Visualizations According to an Object Model of Selected Data Sources," which claims priority to U.S. Provisional Patent Application Ser. No. 62 / 748,968, filed October 22, 2018, entitled "Using an Object Model of Heterogeneous Data to Facilitate Building Data Visualizations," each of which is incorporated by reference herein in its entirety.
[0002] This application is related to U.S. patent application Ser. No. 16 / 236,612, filed Dec. 30, 2018, entitled “Generating Data Visualizations According to an Object Model of Selected Data Sources,” which is hereby incorporated by reference in its entirety.
[0003] This application is related to U.S. patent application Ser. No. 15 / 911,026, filed March 2, 2018, entitled "Using an Object Model of Heterogeneous Data to Facilitate Building Data Visualizations," which claims priority to U.S. Provisional Patent Application Ser. No. 62 / 569,976, filed October 9, 2017, entitled "Using an Object Model of Heterogeneous Data to Facilitate Building Data Visualizations," each of which is incorporated by reference herein in its entirety.
[0004] This application is also related to U.S. patent application Ser. No. 14 / 801,750, entitled "Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization," filed July 16, 2015, and U.S. patent application Ser. No. 15 / 497,130, entitled "Blending and Visualizing Data from Multiple Data Sources," filed April 25, 2017, which are sequels to U.S. patent application Ser. No. 14 / 054,803, entitled "Blending and Visualizing Data from Multiple Data Sources," filed October 15, 2013 (now U.S. Patent No. 9,633,076), which claims priority to U.S. Provisional Patent Application Ser. No. 61 / 714,181, entitled "Blending and Visualizing Data from Multiple Data Sources," filed October 15, 2012, each of which is incorporated by reference in its entirety herein.
[0005] This application is also related to U.S. Patent Application No. 16 / 570,969, filed September 13, 2019, entitled “Utilizing Appropriate Measure Aggregation for Generating Data Visualizations of Multi-fact Datasets,” which is hereby incorporated by reference in its entirety.
[0006] The disclosed implementations relate generally to data visualization, and more specifically to interactive visual analysis of a dataset using an object model of the dataset. [Background technology]
[0007] Data visualization applications allow users to visually understand a dataset, including distributions, trends, outliers, and other factors important to making business decisions. Some data elements need to be calculated based on data from a selected dataset. For example, data visualizations often aggregate data using sums. Some data visualization applications allow users to specify a "level of detail" (LOD), which can be used for aggregation. However, specifying a single level of detail for a data visualization is not sufficient to build a specific calculation.
[0008] Some data visualization applications provide a user interface that allows a user to build a visualization from a data source by selecting data fields and placing them in a particular user interface area to indirectly define the data visualization. See, for example, U.S. patent application Ser. No. 10 / 453,834, entitled "Computer Systems and Methods for the Query and Visualization of Multidimensional Databases," filed Jun. 2, 2003, now U.S. Patent No. 7,089,266, which is incorporated herein by reference in its entirety. However, with complex data sources and / or multiple data sources, it may be unclear what type of data visualization (if any) to generate based on the user's selections.
[0009] In addition, some systems construct queries that result in data visualizations that are not what the user expects. In some cases, some rows of data are omitted (e.g., if there is no corresponding data in one of the fact tables). These issues can be particularly problematic because the end user may not be aware of the problem and / or may not know what is causing the problem. Summary of the Invention
[0010] It can be difficult to generate data visualizations that combine data from multiple tables, especially when there are multiple fact tables. In some cases, it can be helpful to structure an object model of the data before generating the data visualization. In some cases, a person is an expert in a particular piece of data, and that person creates the object model. By storing relationships in the object model, the data visualization application can leverage that information to assist any user accessing the data, even if they are not an expert.
[0011] An object is a named collection of attributes. Objects often correspond to real-world objects, events, or concepts, such as a Store. Attributes are descriptions of objects that conceptually have a 1:1 relationship with the object. So a Store object might have a single [Manager Name] or [Number of Employees] associated with it. At a physical level, objects are often stored as rows in relational tables, or as objects in JSON.
[0012] A class is a collection of objects that share the same attributes. Comparing objects in a class and aggregating them must make analytical sense. At a physical level, classes are often stored as relational tables or as arrays of objects in JSON.
[0013] An object model is a set of classes and a set of many-to-one relationships between them. Classes related by one-to-one relationships are conceptually treated as a single class, even though they may be meaningfully separate to the user. In addition, classes related by one-to-one relationships may be presented as separate classes in a data visualization user interface. A many-to-many relationship is conceptually split into two many-to-one relationships by adding an association table that captures the relationship.
[0014] Once the class model is constructed, the data visualization application can assist the user in a variety of ways. In some implementations, based on the data fields already selected and placed on the shelves of the user interface, the data visualization application can recommend additional fields or limit the actions that can be taken to prevent unusable combinations. In some implementations, the data visualization application allows the user considerable freedom in selecting fields and uses the object model to build one or more data visualizations depending on the user's selections.
[0015] According to some implementations, a method facilitates visualization of an object model of a data source. The method is executed in a computer having a display, one or more processors, and a memory. The memory stores one or more programs configured for execution by the one or more processors. The computer includes receiving a user selection of a data source. In response, the computer displays a data visualization in a data visualization user interface according to an arrangement of data fields from the data source in shelves of the user interface. The data visualization includes a plurality of visual data marks representing data from the data source. The computer detects a first user input for selecting a subset of the visual data marks. In response to detecting the first user input, the computer displays a view data window including a summary of the selected subset of the visual data marks. The computer also obtains a data model that encodes the data source as a tree of logical tables. Each logical table has its own physical representation and includes a respective set of one or more logical fields. Each logical field corresponds to either a data field or a calculation that spans one or more logical tables. Each edge of the tree connects two related logical tables, and each data field is either a measure or a dimension. The computer also determines one or more aggregate measures corresponding to the selected subset of the visual data marks based on the data model, each aggregate measure aggregated from multiple logical tables of the data model, and displays each aggregate measure of the one or more aggregate measures in the view data window.
[0016] In some implementations, in response to detecting the first user input, the computer visually highlights a selected subset of the visual data marks.
[0017] In some implementations, the view data window is displayed as a side panel or a pop-up window.
[0018] In some implementations, each aggregate measure appears as a tab in the view data window.
[0019] In some implementations, the computer also displays each aggregate measure according to the level of detail to which it is resolved. In some implementations, the computer also displays one or more dimensions referenced in the one or more aggregate measures of the data visualization. In some implementations, the computer reorders the one or more dimensions according to the visual specification.
[0020] In some implementations, the computer also detects a second user input to display the data fields of the respective aggregate measures. In response to detecting the second user input, the computer displays the data fields of the respective aggregate measures.
[0021] In some implementations, following a determination that multiple aggregated measures are aggregated from the same set of logical tables, the computer displays only a single instance of the multiple aggregated measures in the view data window.
[0022] In some implementations, in accordance with determining that the plurality of aggregated measures are aggregated from a first logical table, the computer includes, in the view data window, (i) ceasing to display the plurality of aggregated measures, and (ii) displaying the first logical table.
[0023] In some implementations, the computer displays in the view data window the dimensions and calculations referenced in the selected subset of the visual data marks. In some implementations, the computer also displays in the view data window one or more measures for each calculation referenced in the selected subset of the visual data marks.
[0024] In some implementations, the computer displays in the view data window one or more level of detail calculations referenced in a selected subset of the visual data marks. In some implementations, the computer displays level of detail calculations that have a Fixed calculation type and have dimensions from a single logical table that use a single logical table. In some implementations, the computer displays level of detail calculations that have a calculation type other than Fixed separately. In some implementations, each level of detail calculation that references two or more logical tables is displayed using its corresponding least common ancestor (LCA) logical table.
[0025] In some implementations, the computer displays in the view data window a respective label or name to identify each aggregate measure.
[0026] According to some implementations, a system for facilitating visualization of an object model of a data source includes one or more processors, a memory, and one or more programs stored in the memory. The programs are configured to be executed by the one or more processors. The programs include instructions for performing any of the methods described herein.
[0027] According to some implementations, a non-transitory computer-readable storage medium stores one or more programs configured for execution by a computer system having one or more processors and a memory, the one or more programs including instructions for performing any of the methods described herein.
[0028] Thus, a method, system, and graphical user interface are provided for interactive visual analysis of a data set. [Brief description of the drawings]
[0029] For a better understanding of the foregoing and additional implementations of the present invention, please refer to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings:
[0030] [Figure 1A] 1 conceptually illustrates a process for building a data visualization according to some implementations. [Figure 1B] 1 illustrates a desktop version of an exemplary data visualization according to some implementations. [Figure 1C] 1C illustrates an example view of an aggregate data summary of the fields shown in the data visualization of FIG. 1B according to some implementations. [Figure 1D] 1C shows an example view of data for a selected mark in the data visualization of FIG. 1B according to some implementations. [Figure 1E] 1C illustrates a web version of the example data visualization of FIG. 1B according to some implementations. [Figure 1F] 1C illustrates an example view of a summary of aggregated data for the fields shown in the data visualization of FIG. 1E according to some implementations. [Figure 1G] 1E according to some implementations. FIG. 1C shows an example view of data for a selected mark in the data visualization of FIG. [Diagram 2] FIG. 1 is a block diagram of a computing device according to some implementations. [Diagram 3] FIG. 2 is a block diagram of a data visualization server according to some implementations. [Fig. 4A-7I] 1 is a screenshot of a user interface for generating data visualizations using an object model according to some implementations. [Figure 8A-8I] 1 provides a flowchart of a method for generating a data visualization using an object model according to some implementations.
[0031] Like reference numbers refer to corresponding parts throughout the drawings.
[0032] Reference will now be made in detail to implementations, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without these specific details.
[0033] Implementation Description As shown in FIG. 1A, some implementations of interactive data visualization applications use a data visualization user interface 102 to build a visual specification 104. The visual specification identifies one or more data sources 106, which may be stored locally (e.g., on the same device displaying the user interface 102) or externally (e.g., on a database server or in the cloud). The visual specification 104 also includes visual variables. The visual variables indirectly specify the characteristics of the desired data visualization according to data fields selected from the data sources 106. In particular, a user assigns zero or more data fields to each of the visual variables, and the values of the data fields determine the data visualization that is displayed.
[0034] In most cases, not all visual variables are used. In some cases, some of the visual variables have more than one assigned data field. In this scenario, the order of the data fields assigned to the visual variables (e.g., the order in which the data fields were assigned to the visual variables by a user) usually affects how the data visualization is generated and displayed.
[0035] In some implementations, the object model 108 is used to build the appropriate data visualization. In some cases, the object model applies to one data source (e.g., one SQL database or one spreadsheet file), but the object model may encompass two or more data sources. Typically, unrelated data sources have separate object models. In some cases, the object model closely mimics the data model of the physical data source (e.g., classes in the object model corresponding to tables in a SQL database). In some cases, however, the object model is more normalized (or less normalized) than the physical data source. The object model groups attributes (e.g., data fields) that have one-to-one relationships with each other to form classes and identifies many-to-one relationships between the classes. In some cases, the many-to-one relationships are indicated with arrows, with the "many" side of each relationship pointing to the "one" side of the relationship. The object model also identifies each of the data fields (attributes) as either a dimension or a measure. In the following, the letter "D" (or "d") is used to represent a dimension, and the latter "M" (or "m") is used to represent a measure. Dimensions are categorical data fields that store distinct values (e.g., data fields with a string data type). Measures are typically numeric data fields that can be aggregated (e.g., summed or calculated averages). When the object model 108 is constructed, it can make it easy for a user to build data visualizations based on the data fields they select. Because a single object model can be used by an unlimited number of other people, the construction of an object model for a data source is typically delegated to someone who is a relative expert on the data source.
[0036] When a user adds data fields to a visual specification (e.g., indirectly by placing the data fields on a shelf using a graphical user interface), the data visualization application 222 (or web application 322) groups (110) the data fields selected by the user according to the object model 108. Such a group is called a data field set 294. Often, all of the data fields selected by the user are in a single data field set 294. In some cases, there are more than one data field set 294. Each measure m is in exactly one data field set 294, but each dimension d can be in more than one data field set 294.
[0037] The data visualization application 222 (or web application 322) queries 112 the data source 106 for the first set of data fields 294 and then generates a first data visualization 122 corresponding to the retrieved data. The first data visualization 122 is structured according to the visual variables 282 in the visual specification 104 that assigned the data fields 284 from the first set of data fields 294. If there is only one set of data fields 294, all information in the visual specification 104 is used to build the first data visualization 122. If there is more than one set of data fields 294, the first data visualization 122 is based on a first visual sub-specification that consists of all information related to the first set of data fields 294. For example, assume that the original visual specification 104 includes a filter that uses a data field f. If field f is included in the first set of data fields 294, the filter is part of the first visual sub-specification and is therefore used to generate the first data visualization 122.
[0038] If the second (or subsequent) set of data fields 294 exists, the data visualization application 222 (or web application 322) queries 114 the data source 106 for the second (or subsequent) set of data fields 294 and then generates a second (or subsequent) data visualization 124 that corresponds to the retrieved data. This data visualization 124 is structured according to the visual variables 282 in the visual specification 104 that assigned the data fields 284 from the second (or subsequent) set of data fields 294.
[0039] FIG. 1B illustrates a desktop version 132 of an exemplary data visualization according to some implementations. The example illustrates a view data command 134 that a user can use to view the values of all rows in the data source underlying a set of marks in a view. The view data command also allows the user to view summary data based on aggregations in the view. In some implementations, the view data command also allows the user to see aggregate values associated with marks or isolate and export individual rows associated with data of interest, such as outliers. Some implementations also allow the user to view data for mark selection, for fields in the data pane, or when the user is connected to the data. In some implementations, the view data command works with relational and multidimensional databases. In some implementations, drill-through is enabled on the database. Some implementations support viewing multidimensional data sources in desktop versions of data visualization software.
[0040] Returning to the example view shown in FIG. 1B, sales for two product dimensions (category 136 and subcategory 138) are shown as a bar graph 140. Suppose a user wants to view the data for the largest mark in each pane. In some implementations (e.g., desktop versions), the user selects the mark, right-clicks (or control-clicks) the view, and selects "View Data" from the context menu. Alternatively, the user selects an analysis and then selects the View Data menu item. In some implementations (e.g., online or server versions), the user selects the mark and clicks "View Data" from the tooltip menu.
[0041] 1C illustrates an example view 142 of a summary of aggregated data for the fields shown in the data visualization of FIG. 1B according to some implementations. In the illustrated example, the summarized data is presented in a "Summary" tab 141. In some implementations, the aggregated data is provided as a text table of aggregated data for the fields shown in the view.
[0042] 1D shows an example view 144 of a selected mark's data in the data visualization of FIG. 1B according to some implementations. In some implementations, the selected mark's data is displayed in a "Full Data" tab 143. In some implementations, the bottom right of the dialog box shows the number of rows of underlying data 145. In some implementations, when using data blending, the Full Data tab shows only data from the primary data source.
[0043] Figure 1E shows a web version 146 of the example data visualization of Figure 1B according to some implementations. Figure 1F shows an example view 148 of an aggregate data summary of the fields shown in the data visualization of Figure 1E according to some implementations. Figure 1G shows an example view 150 of data for a selected mark in the data visualization of Figure 1E according to some implementations.
[0044] FIG. 2 is a block diagram illustrating a computing device 200 capable of executing a data visualization application 222 or a data visualization web application 322 to display a data visualization 122. In some implementations, the computing device displays a graphical user interface 102 for the data visualization application 222. The computing device 200 includes desktop computers, laptop computers, tablet computers, and other computing devices equipped with a display and a processor capable of executing the data visualization application 222. The computing device 200 typically includes one or more processing units / cores (CPUs) 202 for executing modules, programs, and / or instructions stored in a memory 214 and thereby performing processing operations, one or more network or other communication interfaces 204, the memory 214, and one or more communication buses 212 for interconnecting these components. The communication bus 212 may include circuitry that interconnects and controls communication between the system components. The computing device 200 includes a user interface 206 including a display 208 and one or more input devices or mechanisms 210. In some implementations, the input devices / mechanisms include a keyboard. In some implementations, the input devices / mechanisms include a "soft" keyboard that is optionally displayed on the display 208, allowing a user to "press keys" that are displayed on the display 208. In some implementations, the display 208 and the input devices / mechanisms 210 include a touch screen display (also referred to as a touch sensitive display). In some implementations, the display is an integrated part of the computing device 200. In some implementations, the display is a separate display device.
[0045] In some implementations, memory 214 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices. In some implementations, memory 214 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. In some implementations, memory 214 includes one or more storage devices located remotely from CPU 202. Memory 214, or alternatively a non-volatile memory device within memory 214, includes a non-transitory computer-readable storage medium. In some implementations, memory 214, or the computer-readable storage medium of memory 214, stores the following programs, modules, and data structures, or a subset thereof: · An operating system 216 that handles various basic system services and contains instructions for performing hardware-dependent tasks. · A communications module 218, used to connect the computing device 200 to other computers and devices via one or more communications network interfaces 204 (wired or wireless) and one or more communications networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc. · A web browser 220 (or other client application) that allows a user to communicate with remote computers or devices using a network. A data visualization application 222 that provides a graphical user interface 102 for users to construct visual graphics (e.g., individual data visualizations or a dashboard with multiple related data visualizations). In some implementations, the data visualization application 222 runs as a standalone application (e.g., a desktop application). In some implementations, the data visualization application 222 runs within the web browser 220 (e.g., as a web application 322): · A graphical user interface 102 that allows a user to build a data visualization by visually specifying elements, as shown in FIG. 4 below. In some implementations, the user interface 102 includes a number of shelf areas 250 that are used to specify characteristics of a desired data visualization. In some implementations, the shelf area 250 includes a column shelf 230 and a row shelf 232 that are used to specify the placement of data in a desired data visualization. Generally, fields placed on the column shelf 230 are used to define columns in the data visualization (e.g., the x-coordinate of a visual mark). Similarly, fields placed on the row shelf 232 define rows in the data visualization (e.g., the y-coordinate of a visual mark). In some implementations, the shelf area 250 includes a filter shelf 262 that allows a user to limit the data displayed according to a selected data field (e.g., limiting the data to rows where a particular field has a particular value or has values within a particular range). In some implementations, the shelf area 250 includes a mark shelf 264 that is used to specify various encodings of the data marks. In some implementations, the mark shelf 264 includes a color-coding icon 270 (for specifying the color of the data mark based on the data field), a size-coding icon 272 (for specifying the size of the data mark based on the data field), a text-coding icon (for specifying a label associated with the data mark), and a view-level detail icon 228 (for specifying or changing the level of detail of the data visualization). A visual specification 104 used to define the characteristics of the desired data visualization. In some implementations, the visual specification 104 is constructed using the user interface 102. The visual specification includes identified data sources 280 (i.e., specifies what the data sources are), which provides enough information to locate the data sources 106 (e.g., data source name or full network path name). The visual specification 104 also includes visual variables 282 and data fields 284 assigned to each of the visual variables. In some implementations, the visual specification has a visual variable that corresponds to each of the shelf areas 250. In some implementations, the visual variables include other information, such as contextual information about the computing device 200, user preference information, or other data visualization features not implemented as shelf areas (e.g., analytical features). One or more object models 108 that identify the structure of the data sources 106. In the object models, data fields (attributes) are organized into classes, with the attributes in each class having a one-to-one correspondence with each other. The object model also includes many-to-one relationships between classes. In some cases, the object model maps each table in the database to a class, with the many-to-one relationships between classes corresponding to foreign key relationships between tables. In some cases, the data model of the underlying source does not map cleanly to the object model in this simple way, so the object model includes information that specifies how to convert the raw data into the appropriate class objects. In some cases, the raw data source is a simple file (e.g., a spreadsheet) and is converted into multiple classes. A data visualization generator 290 that generates and displays a data visualization according to the visual specification. As shown in FIG. 1A, the selected data fields are grouped into one or more data field sets 294. According to some implementations, the data visualization generator 290 uses the object model 108 to generate a query 298 and / or optimizes the query using a query optimizer 296. Details of the query generation and optimization techniques, according to some implementations, are described below with reference to FIGS. 5A-11. · Visualization parameters 236 that include information used by the data visualization application 222 other than information provided by the visual specification 104 and the data source 106. Zero or more databases or data sources 106 (e.g., a first data source 106-1) used by the data visualization application 222. In some implementations, the data sources are stored as spreadsheet files, CSV files, XML files, flat files, JSON files, tables in a relational database, a cloud database, or a statistical database.
[0046] Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various implementations. In some implementations, memory 214 stores a subset of the above identified modules and data structures. In some implementations, memory 214 may store additional modules or data structures not described above.
[0047] 2 illustrates a computing device 200, which is intended more as a functional description of various features that may be present, rather than as a structural overview of the implementations described herein, and in practice, items shown separately may be combined and some items may be separated, as will be recognized by those skilled in the art.
[0048] 3 is a block diagram of a data visualization server 300 according to some implementations. The data visualization server 300 may host one or more databases 328 or may provide various executable applications or modules. The server 300 typically includes one or more processing units / cores (CPUs) 302, one or more network interfaces 304, memory 314, and one or more communication buses 312 for interconnecting these components. In some implementations, the server 300 includes a user interface 306 including a display 308 and one or more input devices 310, such as a keyboard and mouse. In some implementations, the communication bus 312 includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components.
[0049] In some implementations, memory 314 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. In some implementations, memory 314 includes one or more storage devices that are located remotely from CPU 302. Memory 314, or alternatively a non-volatile memory device within memory 314, includes a non-transitory computer-readable storage medium.
[0050] In some implementations, the memory 314, or the computer-readable storage medium of the memory 314, stores the following programs, modules, and data structures, or a subset thereof: · An operating system 316 that handles various basic system services and contains instructions for performing hardware-dependent tasks. · One or more communication network interfaces 304 (wired or wireless) and a network communications module 318 used to connect the server 300 to other computers via one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc. · A Web server 320 (such as an HTTP server) that receives Web requests from users and responds by providing response Web pages or other resources. A data visualization web application 322 that may be downloaded and executed by the web browser 220 on the user's computing device 200. In general, the data visualization web application 322 has the same functionality as the desktop data visualization application 222, but provides the flexibility of access from any device in any location with a network connection and does not require installation and maintenance. In some implementations, the data visualization web application 322 includes various software modules for performing specific tasks. In some implementations, the web application 322 includes a user interface module 324 that provides a user interface for all aspects of the web application 322. In some implementations, the user interface module 324 specifies shelf areas 250, as described above for the computing device 200. The data visualization web application also stores visual specifications 104 when a user selects desired data visualization characteristics. Visual specifications 104, and the data they store, are described above for computing device 200. · One or more object models 108, as described above for the computing device 200. · A data visualization generator 290 that generates and displays data visualizations according to user-selected data sources and data fields, as well as one or more object models that describe the data sources 106. The operation of the data visualization generator was described above in relation to the computing device 200. In some implementations, the web application 322 includes a data retrieval module 326, which constructs and executes queries to retrieve data from one or more data sources 106. The data sources 106 may be stored locally on the server 300 or in an external database. In some implementations, data from two or more data sources may be blended. In some implementations, the data retrieval module 326 constructs queries using the visual specification 104, as described above for the computing device 200 of FIG. 2. In some implementations, the memory 314 stores the visualization parameters 236, as described above for the computing device 200. One or more databases 328 that store data used or created by the data visualization web application 322 or the data visualization application 222. The database 328 can store the data sources 106 that provide data used in the generated data visualization. Each data source 106 includes one or more data fields 330. In some implementations, the database 328 stores user preferences. In some implementations, the database 328 includes a data visualization history log 334. In some implementations, the history log 334 tracks each time the data visualization web application 322 renders a data visualization.
[0051] The database 328 can store data in many different formats and typically includes many separate tables, each with multiple data fields 330. Some data sources include a single table. The data fields 330 include both raw fields from the data source (e.g., columns from a database table or columns from a spreadsheet) and derived data fields that may be calculated or constructed from one or more other fields. For example, derived data fields include calculating months or quarters from date fields, calculating the duration between two date fields, calculating cumulative sums of quantitative fields, calculating growth rates, etc. In some cases, the derived data fields are accessed by stored procedures or views in the database. In some implementations, the definitions of the derived data fields 330 are stored separately from the data source 106. In some implementations, the database 328 stores a set of user preferences for each user. The user preferences can be used when the data visualization web application 322 (or application 222) makes recommendations about how to display the set of data fields 330. In some implementations, the database 328 stores a data visualization history log 334 that stores information about each data visualization that was generated. In some implementations, the database 328 stores other information, including other information used by the data visualization application 222 or the data visualization web application 322. The database 328 may be separate from the data visualization server 300 or may be included with the data visualization server (or both).
[0052] In some implementations, the data visualization history log 334 stores the visual specifications 104 selected by the user, which may include a user identifier, a timestamp when the data visualization was created, a list of data fields used in the data visualization, the type of data visualization (sometimes called a "view type" or "chart type") type, data encoding (e.g., color and size of marks), selected data relationships, and connectors used. In some implementations, one or more thumbnail images of each data visualization are also stored. Some implementations store additional information about the data visualizations created, such as the name and location of the data source, the number of rows of the data source that were included in the data visualization, and the version of the data visualization software.
[0053] Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various implementations. In some implementations, memory 314 stores a subset of the above identified modules and data structures. In some implementations, memory 314 may store additional modules or data structures not described above.
[0054] Although FIG. 3 illustrates a data visualization server 300, FIG. 3 is intended more as a functional description of various features that may be present, rather than as a structural overview of the implementations described herein. In practice, items shown separately may be combined and some items may be separated, as will be recognized by those skilled in the art. In addition, some of the programs, functions, procedures, or data illustrated above in connection with the server 300 may be stored or executed on the computing device 200. In some implementations, functions and / or data may be allocated between the computing device 200 and one or more servers 300. Furthermore, those skilled in the art will recognize that FIG. 3 need not represent a single physical device. In some implementations, server functions are allocated across multiple physical devices that comprise a server system. As used herein, references to a "server" or "data visualization server" include various groups, collections, or arrangements of servers providing the described functionality, and the physical servers need not be physically co-located (e.g., individual physical devices may be spread across the United States or around the world).
[0055] 4A-4G, 5A-5D, 6, and 7A-7I are screenshots of user interfaces for generating data visualizations using an object model according to some implementations.
[0056] 4A illustrates a data visualization user interface 102 according to some implementations. In some implementations, the user interface 102 includes a schema information area, also referred to as a data pane. The schema information area provides named data elements (e.g., field names) that can be selected and used to build a data visualization. In some implementations, the list of field names is divided into groups of dimensions and groups of measures (usually quantities). Some implementations also include a list of parameters. The graphical user interface 102 also includes a data visualization area 412. The data visualization area 412 includes multiple shelf areas, such as a column shelf area 230 and a row shelf area 232. These are also referred to as the column shelf 230 and the row shelf 232. In addition, the user interface 102 includes a filter shelf 262 that can include one or more filters 424.
[0057] As shown herein, the data visualization area 412 also has a large amount of space for displaying visual graphics. In Figure 4A, the displayed visual graphic 428 is a scatter plot.
[0058] The user selects one or more data sources 106 (which may be stored on the computing device 200 or may be stored remotely), selects data fields from the data sources, and defines a visual graphic using the selected fields. The data visualization application 222 (or web application 322) displays the generated graphic 428 in the data visualization area 412. In some implementations, the information provided by the user is stored as a visual specification 104.
[0059] In some implementations, the data visualization area 412 includes a marks shelf 264. The marks shelf 264 allows a user to specify various encodings 426 of the data marks. In some implementations, the marks shelf includes one or more icons (e.g., color-encoding icons 270, size-encoding icons, text-encoding icons, and / or view-level detail icons 228 that can be used to specify or change the level of detail of the data visualization).
[0060] In some implementations, the data visualization platform allows a user to build a visualization through drag-and-drop actions using one or more logical tables. The user builds the logical tables through physical modeling, which can include pivots, joins, and consolidations. The tables joined through physical modeling represent the logical tables themselves. In some data visualization platforms, a query generation model automatically maps user actions to underlying queries. In some implementations, an analyst creates an object model of the dataset.
[0061] With the object model, the data underlying a visualization can come from two or more logical tables. Measures are aggregated at different levels of detail. The user interface disclosed herein helps users understand how measures are aggregated in the object model. Some implementations show the underlying data for each measure rather than displaying a single table with details of all fields.
[0062] FIG. 4A shows a screenshot of the user interface 102 after a user selects “View Data” for data visualization 428, according to some implementations. In some implementations, a pop-up window 436 opens as shown in FIG. 4A. The pop-up window 436 shows the results of a decomposed query that includes all fields in the data source, including loyalty reward points 432 and unit price 434. Some implementations show the full combined level of detail in “View Data” even if this level of detail is not used throughout the visualization. Measures from two different objects are displayed: AVG (unit price) from the product table and AVG (loyalty reward points) from the customer table. This example shows a replication 430 of loyalty reward points 432. An average of all values (including the duplicated values) would result in an incorrect value in the summary tab (not shown). It is not clear to the user whether the values are duplicated or if the values are actually identical. In other words, the view shows duplicated data even though the visualization 428 does not reflect this duplication. The visualization is correct, but the “View Data” does not help the user understand the aggregation.
[0063] 4B shows a screenshot of the user interface 102 after a user selects "View Data" for data visualization 428, according to some implementations. In contrast to FIG. 4A, the display shows measures that are independent of each other: AVG (unit price) of the products table and AVG (loyalty reward points) of the customers table. In the example shown, each measure is shown in a respective tab (e.g., tabs 438 and 440) of the pop-up window 436. Since each measure can have a different level of detail, showing the measures in separate tabs allows each measure to be shown at a different level of detail, if desired. In other words, each measure is aggregated independently.
[0064] FIG. 4C shows another screenshot of the user interface 102 according to some implementations. In this example, two customers in North Dakota placed an order. Tab 438 corresponds to the loyalty reward points earned by the two customers (shown in column 442). The computer displays a table corresponding to each measure (corresponding to tabs 438 and 440, respectively) according to some implementations. FIG. 4D shows another screenshot of the user interface 102 according to some implementations. In this example, seven products were sold in North Dakota. Tab 440 corresponds to the unit price of the seven products (shown in column 444). In some implementations, a corresponding table is displayed for each measure (corresponding to tabs 438 and 440, respectively). In some implementations, each measure may have a different level of detail. The example shows that there are two rows averaged from the customer table for an AVG (loyalty reward points) of 752.0 and seven rows averaged from the product table for an AVG (unit price) of 36.0.
[0065] 4E shows another screenshot of the user interface 102 according to some implementations. Some implementations provide context-related information (e.g., columns 446) for each measure. Some implementations include referenced dimensions in the visualization and sort the dimensions by their position in the visual specification (448). Thus, some implementations provide an appropriately resolved level of detail for each measure.
[0066] FIG. 4F shows another screenshot of the user interface 102 according to some implementations. Some implementations show only the reference columns for each measure. For example, in FIG. 4F, the table corresponding to measure 438 shows only state(s) 450 and loyalty reward points 452 if option 454 to show all fields is not checked. Some implementations provide an option 456 to show aliases. FIG. 4G shows another screenshot of the user interface 102 according to some implementations. Some implementations show all columns for each measure. For example, in FIG. 4F, the table corresponding to measure 438 shows state(s) 450, loyalty reward points 452, and other columns 458 if option 454 to show all fields is not checked. In this example, the user can see that there are two customers.
[0067] Thus, in various implementations, the user interfaces shown in Figures 4B-4F advantageously show the data underlying each measure. Some implementations show a tab for each measure, thereby showing how each measure aggregates at a level of detail independent of the other measures. Some implementations avoid duplicating data or showing the wrong level of detail, which typically occurs when showing data from fully joined data sources.
[0068] 5A-5D show screenshots of the user interface 102 for a scenario where measures (of data visualization 502) come from the same table, according to some implementations. Data visualization 502 is a scatter plot of profit versus sales. As the summary tab 504 of the view data window 436 shows, profit and sales are from the same table line item. In FIGS. 5B and 5C, the profit tab 506 and the sales tab 510 each show the same table. In some implementations, the respective columns (sometimes called reference columns, such as column 508 in FIG. 5B and column 512 in FIG. 5C) that correspond to the measures are highlighted. In these examples, each measure has the same level of detail, but the two tabs are shown with the same data. Some implementations show the same table to inform the user that the measures come from the same table. Some implementations collapse all measures of the same table into one tab and / or label them with the table name. Some implementations include dimensions in the visualizations that are reproduced from other objects. In this way, some implementations remove redundant information. As shown in FIG. 5D, some implementations fold measures into object tabs. Some implementations also show referenced dimensions, and therefore display the dimensions when displaying data by object. In FIG. 5D, instead of identical sales and profit tabs, a single line item tab 514 is displayed with dimensions referenced from this object and other columns of the table (e.g., dimensions referenced from other objects). In some implementations, calculations that do not belong to the object are displayed in a separate tab. Some implementations fold the tabs into object tabs to keep the dimensions and show the calculations in their own tabs.
[0069] 6 shows a screenshot of a single object data source user interface 102 according to some implementations. In some implementations, the "Full Data" tab 602 of the "View Data" window 436 provides similar functionality (described above with reference to FIGS. 5A-5D) for data visualization 604.
[0070] 7A-7I show screenshots of the user interface 102 for a calculation, according to some implementations. In the example shown in FIGS. 7A-7C, the data visualization 702 is a bar chart for SUM (sales minus profit) for different products. As shown, the referenced calculation is shown in a separate tab 704 (similar to how measures are displayed in separate tabs, as described above with reference to FIGS. 5A-5D). In some implementations, the measures referenced in the calculation are displayed to provide better context to the user. Some implementations also allow the user to inspect row-level calculations. As shown in FIG. 7B, according to some implementations, the fields referenced by the calculation are displayed (e.g., even if Show All Fields is turned off by the user). In some implementations, as shown in FIG. 7C, when the user turns on Show All Fields, all fields of the calculation's table are shown.
[0071] 7D-7F show screenshots of the user interface 102 for a multi-object row-level calculation according to some implementations. The visualization 706 corresponds to a row-level calculation that uses columns from different tables at different levels of detail. Some implementations allow the user to inspect the row-level calculation. Because the calculation [profit]-[unit cost] uses different tables, each with a different level of detail, some implementations do not add additional columns. The example in FIG. 7D shows the unit cost replicated (in tab 708) (whereas profit is not replicated). The user can verify that the average of the [profit]-[unit cost] row is equal to the summary result. Some implementations indicate whether the [unit cost] is actually replicated. As shown in FIGS. 7E and 7F, some implementations display a tab (e.g., tabs 710 and 712) for each measure used by the referenced calculation. Some implementations also display context information for the fields of the table of the measure. In this way, various levels of detail for each measure can be displayed. For example, Unit Cost and Profit are shown at various levels of detail in FIGS. 7E and 7F, depending on the implementation.
[0072] 7G-7I show screenshots of the user interface 102 for aggregate calculations according to some implementations. The visualization 706 (a bar chart) corresponds to the aggregate calculation SUM([Revenue]) / SUM([Unit Price]). Some visualization platforms incorrectly show disaggregated data implying aggregate calculations such as row-level calculations, an example of which is shown in FIG. 7H. The display incorrectly shows Revenue divided by Unit Price for each row (e.g., row 714). In some implementations, SUM(Revenue) is divided by SUM([Unit Price]) after each measure is aggregated separately, as shown in FIG. 7G. Some implementations show an aggregate view of the data underlying the data visualization in the Calculations tab. For example, in some implementations, the sum of Revenue and the sum of Unit Price are displayed in a single row along with the aggregate calculation. In some implementations, this is similar to what is displayed in the Summary tab, but with SUM(Revenue) and SUM(Unit Price). In some implementations, as in the other multi-object scenarios described above, measures from a calculation are displayed in their own tabs so that different levels of detail can be displayed, as shown in Figure 7I. For example, in Figure 7I, sales and unit price are displayed in separate tabs 716 and 718. Thus, different levels of detail can be displayed for each measure referenced from the calculation.
[0073] In some implementations, level of detail (LOD) calculations are displayed in separate tabs. LOD calculations can be at a different level of detail than the visualization and / or the underlying data source. Include and exclude LOD calculations share dimensions with the visualization LOD, but, for example, a Fixed LOD calculation may not have any dimensions in common with the visualization. In some implementations, a Fixed LOD calculation whose dimensions come from a single object is assigned to that object. For example, the Fixed LOD calculation is added to its table tab. In some implementations, all other types of LOD calculations are shown in separate tabs because they do not belong to a specific table. Some implementations show all types of LOD calculations in separate tabs (e.g., even Fixed LOD calculations whose dimensions come from a single object are shown in separate tabs).
[0074] Some implementations show multi-object LOD calculations by determining the Least Common Ancestor (LCA) object and showing the calculation under that object's tab. For example, {FIXED[Line Item ID], [State]:SUM([Sales])} is shown as part of the line item table in the schema viewer but not as part of the line item tab in the Viewable Data window.
[0075] 8A-8D provide a flowchart of a method 800 for generating (802) a data visualization using an object model according to the techniques described above, according to some implementations. The method 800 is performed (804) on a computing device 200 having one or more processors and memory. The memory stores (806) one or more programs configured for execution by the one or more processors.
[0076] In some implementations, the computer displays (e.g., in a connection area) multiple data sources, each associated with one or more tables.
[0077] The computer receives a user selection of a data source (e.g., a selection of one of a plurality of data sources) (808). In response, the computer displays a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves of the user interface (810). The data visualization includes a plurality of visual data marks representing data from the data sources. The computer detects a first user input for selecting a subset of the visual data marks (812).
[0078] 8B, in response to detecting the first user input, the computer displays a view data window including a summary of the selected subset of the visual data marks (816). In some implementations, in response to detecting the first user input, the computer visually highlights the selected subset of the visual data marks (818). In some implementations, the computer displays the view data window as a side panel or a pop-up window (820).
[0079] The computer also obtains a data model that encodes the data source as a tree of logical tables (822). Each logical table has its own physical representation and includes one or more respective logical fields. Each logical field corresponds to either a data field or a calculation that spans the one or more logical tables. Each edge of the tree connects two related logical tables, and each data field is either a measure or a dimension. The computer also determines one or more aggregate measures that are measures that correspond to a selected subset of the visual data marks based on the data model (824). Each aggregate measure is aggregated from multiple logical tables of the data model. The computer displays each aggregate measure of the one or more aggregate measures in the view data window (826). In some implementations, each aggregate measure is displayed as a tab in the view data window (828).
[0080] 8C, in some implementations, the computer also displays each aggregate measure according to its decomposed level of detail (830). In some implementations, the computer also displays one or more dimensions referenced within the one or more aggregate measures of the data visualization (832). In some implementations, the computer reorders the one or more dimensions according to the visual specification (834).
[0081] 8D, in some implementations, the computer also detects a second user input to display the data fields of the respective aggregate measures (836). In response to detecting the second user input, the computer displays the data fields of the respective aggregate measures (838).
[0082] Referring now to FIG. 8E, in some implementations, following a determination that the multiple aggregated measures are aggregated from the same set of logical tables, the computer displays (840) a single instance of the multiple aggregated measures in the view data window.
[0083] Referring now to FIG. 8F, in some implementations, in accordance with a determination that the multiple aggregated measures are aggregated from the first logical table, the computer performs at least the operations of (i) ceasing to display the multiple aggregated measures and (ii) displaying the first logical table (842) in the view data window.
[0084] 8G, in some implementations, the computer displays in the view data window the dimensions and calculations referenced in the selected subset of visual data marks (844). In some implementations, the computer also displays in the view data window one or more measures for each calculation referenced in the selected subset of visual data marks (846).
[0085] Referring now to FIG. 8H, in some implementations, the computer displays in the view data window (848) one or more level of detail calculations referenced in the selected subset of visual data marks. In some implementations, the computer displays (850) level of detail calculations that have a Fixed calculation type and have dimensions derived from a single logical table using a single logical table. In some implementations, the computer separately displays (852) level of detail calculations that have a calculation type other than Fixed. In some implementations, each level of detail calculation that references two or more logical tables is displayed using a corresponding Least Common Ancestor (LCA) logical table (854).
[0086] Referring now to FIG. 8I, in some implementations, the computer display (856) displays within the view data window a respective label or name to identify each aggregate measure.
[0087] The terminology used in the description of the invention herein is for the purpose of describing particular implementations only and is not intended to limit the invention. When used in the description of the invention and the appended claims, the singular forms "a", "an" and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "comprise" and / or "comprising" as used herein specify the presence of stated features, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups thereof.
[0088] The foregoing description has been described with reference to specific implementations for purposes of illustration. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The implementations have been chosen and described in order to best explain the principles of the invention and its practical application, so that those skilled in the art can make best use of the invention and its various implementations with various modifications suitable for the particular use contemplated.
Claims
1. 1. A method for visually analyzing multiple rows of calculations for data visualization, comprising:
1. A computer having a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors, comprising: Receiving a user selection of a data source; displaying a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves in the user interface, the data visualization including a plurality of visual data marks representing data from the data sources; detecting a first user input for selecting a subset of the visual data marks; in response to detecting the first user input; displaying a view data window containing a summary of a selected subset of said visual data marks; obtaining a data model that encodes the data source as a tree of logical tables, each logical table having its own physical representation and containing a respective one or more logical fields, each logical field corresponding to either a data field or a calculation that spans one or more logical tables, each edge of the tree connecting two related logical tables, and each data field being either a measure or a dimension; determining one or more aggregate measures corresponding to the selected subset of the visual data marks based on the data model, each aggregate measure being aggregated from multiple logical tables of the data model; and displaying each aggregated measure of the one or more aggregated measures in the view data window; displaying a single instance of the multiple aggregated measures in the view data window in accordance with a determination that the multiple aggregated measures are aggregated from the same set of logical tables; A method comprising:
2. A method for visually analyzing multiple lines of calculations for data visualization, comprising:
1. A computer having a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors, comprising: Receiving a user selection of a data source; displaying a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves in the user interface, the data visualization including a plurality of visual data marks representing data from the data sources; detecting a first user input for selecting a subset of the visual data marks; in response to detecting the first user input; displaying a view data window containing a summary of a selected subset of said visual data marks; obtaining a data model that encodes the data source as a tree of logical tables, each logical table having its own physical representation and containing a respective one or more logical fields, each logical field corresponding to either a data field or a calculation that spans one or more logical tables, each edge of the tree connecting two related logical tables, and each data field being either a measure or a dimension; determining one or more aggregate measures corresponding to the selected subset of the visual data marks based on the data model, each aggregate measure being aggregated from multiple logical tables of the data model; and displaying each aggregated measure of the one or more aggregated measures in the view data window; in accordance with determining that a plurality of aggregated measures are aggregated from a first logical table, (i) ceasing to display the plurality of aggregated measures, and (ii) displaying the first logical table, in the view data window; A method comprising:
3. A method for visually analyzing multiple lines of calculations for data visualization, comprising:
1. A computer having a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors, comprising: Receiving a user selection of a data source; displaying a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves in the user interface, the data visualization including a plurality of visual data marks representing data from the data sources; detecting a first user input for selecting a subset of the visual data marks; in response to detecting the first user input; displaying a view data window containing a summary of a selected subset of said visual data marks; obtaining a data model that encodes the data source as a tree of logical tables, each logical table having its own physical representation and containing a respective one or more logical fields, each logical field corresponding to either a data field or a calculation that spans one or more logical tables, each edge of the tree connecting two related logical tables, and each data field being either a measure or a dimension; determining one or more aggregate measures corresponding to the selected subset of the visual data marks based on the data model, each aggregate measure being aggregated from multiple logical tables of the data model; and displaying each aggregated measure of the one or more aggregated measures in the view data window; displaying, within the view data window, one or more level of detail calculations referenced within a selected subset of the visual data marks; Including, A method in which each level of detail calculation that references two or more logical tables is displayed using its corresponding least common ancestor (LCA) logical table.
4. The method of any one of claims 1 to 3, further comprising visually highlighting the selected subset of the visual data marks in response to detecting the first user input.
5. The method according to any one of claims 1 to 3, wherein the view data window is displayed as a side panel or a pop-up window.
6. The method of any one of claims 1 to 3, wherein each aggregated measure is displayed as a tab in the view data window.
7. The method of any one of claims 1 to 3, further comprising displaying each aggregate measure according to its disaggregated level of detail.
8. The method of claim 7 , further comprising displaying one or more dimensions referenced in the one or more aggregated measures in the data visualization.
9. The method of claim 8 , further comprising reordering the one or more dimensions according to a visual specification.
10. detecting a second user input to indicate a data field of each aggregate measure; The method of claim 1 , further comprising: in response to detecting the second user input, displaying a data field of the respective aggregate measure.
11. The method of any one of claims 1 to 3, further comprising displaying in the view data window dimensions and calculations referenced in the selected subset of visual data marks.
12. The method of claim 11 , further comprising displaying, in the view data window, one or more measures for each calculation referenced in the selected subset of visual data marks.
13. A level of detail calculation that has a Fixed calculation type and has dimensions that come from a single logical table is displayed using the single logical table; The method of claim 3 , wherein level of detail calculations having a calculation type other than Fixed are displayed separately.
14. The method of any one of claims 1 to 3, further comprising displaying in the view data window a respective label or name for identifying each aggregated measure.
15. 1. A computer system for displaying an object model of a data source, comprising: A display and one or more processors; A memory, The memory stores one or more programs configured to be executed by the one or more processors, the one or more programs comprising: Receiving a user selection of a data source; displaying a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves in the user interface, the data visualization including a plurality of visual data marks representing data from the data sources; detecting a first user input for selecting a subset of the visual data marks; in response to detecting the first user input; displaying a view data window containing a summary of a selected subset of said visual data marks; obtaining a data model that encodes the data source as a tree of logical tables, each logical table having its own physical representation and containing a respective one or more logical fields, each logical field corresponding to either a data field or a calculation that spans one or more logical tables, each edge of the tree connecting two related logical tables, and each data field being either a measure or a dimension; determining one or more aggregate measures based on the data model, the aggregate measures being measures corresponding to a selected subset of the visual data marks, each aggregate measure being aggregated from multiple logical tables of the data model; and displaying each aggregate measure of the one or more aggregate measures in the view data window; displaying a single instance of the multiple aggregated measures in the view data window in accordance with a determination that the multiple aggregated measures are aggregated from the same set of logical tables; A computer system comprising instructions for performing the steps of:
16. 16. The computer system of claim 15, wherein the one or more programs further comprise instructions for displaying each aggregate measure according to its disaggregated level of detail.
17. 20. The computer system of claim 16, wherein the one or more programs further comprise instructions for displaying one or more dimensions referenced in the one or more aggregated measures in the data visualization.
18. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by a computer system having a display, one or more processors, and a memory, the one or more programs comprising: Receiving a user selection of a data source; displaying a data visualization in a data visualization user interface according to an arrangement of data fields from the data sources in shelves in the user interface, the data visualization including a plurality of visual data marks representing data from the data sources; detecting a first user input for selecting a subset of the visual data marks; in response to detecting the first user input; displaying a view data window containing a summary of a selected subset of said visual data marks; obtaining a data model that encodes the data source as a tree of logical tables, each logical table having its own physical representation and containing a respective one or more logical fields, each logical field corresponding to either a data field or a calculation that spans one or more logical tables, each edge of the tree connecting two related logical tables, and each data field being either a measure or a dimension; determining one or more aggregate measures corresponding to the selected subset of the visual data marks based on the data model, each aggregate measure being aggregated from multiple logical tables of the data model; and displaying each aggregated measure of the one or more aggregated measures in the view data window; displaying a single instance of the multiple aggregated measures in the view data window in accordance with a determination that the multiple aggregated measures are aggregated from the same set of logical tables; A non-transitory computer-readable storage medium comprising instructions for performing the steps of:
Citation Information
Patent Citations
Computer systems and methods for visualizing data using mark generation.
JP2008523473A
Using object models of heterogeneous data to aid in building data visualizations
JP2020537251A
Data Visualization User Interface with Summary Popup that Includes Interactive Objects
US20180129513A1
Using an object model of heterogeneous data to facilitate building data visualizations
WO2019074570A1
