Generating easy-to-understand graphs of large data sets

Disclosed is a system to obtain the data set including multiple variables. The system extracts the multiple variables from the data set. Based on the data set, the system creates an ontology indicating multiple relationships between two or more variables among the multiple variables, where a relationship among multiple relationships indicates a correlation between the two or more variables. The system obtains an intent associated with the user, and a visualization standard, where the visualization standard indicates an attribute associated with the visualization. The system generates a sequence of multiple visualizations to present to the user by ranking the multiple visualizations based on the correlation between the two or more variables, the visualization standard and the intent associated with the user. The system presents the sequence of multiple visualizations based on the ranking.

BACKGROUND

Today's technology enables users to gather and store vast amounts of data. However, to draw value from the data, the data needs to be analyzed and presented in a format understandable by people, such as healthcare workers, who may not necessarily be versed in mathematics and statistical analysis.

DETAILED DESCRIPTION

Disclosed here is a system and method to generate a visualization of at least a portion of a data set, such as a healthcare, marketing, product or other data set. The system can obtain the data set including multiple variables, such healthcare data for the number of COVID-19 deaths per county in the United States. The system extracts the multiple variables from the data set. Based on the data set, the system can create an ontology indicating multiple relationships between two or more variables among the multiple variables. The relationship in the ontology can indicate a correlation between the two or more variables, whether the correlation is positive or negative. The system can obtain an intent associated with the user, where the intent indicates visualizations frequently viewed by the user. The system can highly prioritize visualizations similar to the visualizations frequently viewed by the user.

The system can obtain a visualization standard, where the visualization standard indicates representing categorical variables using a bar graph, and representing numerical variables using a scatterplot. Based on the ontology, the intent, and the visualization standard, the system can generate an ordered sequence of multiple visualizations to present to the user. To generate the ordered sequence of multiple visualizations, the system can determine the multiple visualizations to present to the user by determining multiple permutations of the two or more variables. A permutation of the two or more variables corresponds to a visualization among the multiple visualizations. Each permutation assigns a variable to either the X- or the Y-axis. The system can rank the multiple visualizations based on the correlation between the two or more variables, the visualization standard, and the intent associated with the user. The system can present the sequence of multiple visualizations based on the ranking, where the higher ranked visualizations are presented first.

FIG. 1shows an imported data set. The imported data set100can be represented by various formats such as a comma separated value (CSV), excel or semi structured format. The imported data set100can contain multiple variables110,120,130,140, etc. (only four shown for brevity) that can be represented by columns or rows in the imported data set100. The imported data set100can contain data from various industry sectors such as healthcare, telecommunications, policing, marketing, etc. The imported data sets100can contain gigabytes or terabytes of data, which is impossible for a person to absorb, analyze, and understand. The disclosed system and method aid in analyzing the data, identifying important relationships, creating the easy-to-understand visualizations of the important relationships in the data, and creating stories based on the visualizations.

FIGS. 2A-2Cshow visualizations produced by the system. The data set shown in the visualizations200,210,220contains 23 variables. This is a relatively small table, but the visualization space that can be generated from those 23 variables is greater than 4.1515867E+12. This is a very large number that would make exploring the visualization space extremely cumbersome for the user. However, some visualizations are more informative than others. The system disclosed here filters out the visualizations that are not useful and generates only the most informative visualizations, ranks them, and displays them in order. For example, in the above set containing 23 variables, the system narrows down the important visualizations to 156, as shown in element205. The visualizations can be a line graph, donut chart, scatterplot200, a bar graph210, or a chloropleth map220.

In addition to the generated visualizations, as shown inFIG. 2A, the user interface element207enables the user to generate a visualization that has not been provided by the system. The user can specify the variables and the type of visualization to generate, and the system can generate the user-specified visualization.

A choropleth map is a type of thematic map in which a set of pre-defined areas is colored or patterned in proportion to a statistical variable that represents an aggregate summary of a characteristic within each area, such as population density or per-capita income visualized in relation to geography. In choropleth220, the geographic area is a state. However, other geographic areas can be represented, such as counties, zip codes, cities, countries, continents, etc. The system can automatically determine the geographical area via type inference and fuzzy matching. For example, the system can determine whether the geographical area includes county, city, state, country, or continent. The system uses string comparison algorithms such as the Levenshtein algorithm to produce matching inferences.

FIG. 3shows the user interface to navigate the visualizations. The user interface element300enables the user to search the visualizations. The user interface element310enables a user to indicate an aspect of the visualization that the user is interested in, such as the name of the variable. The name of the variable can correspond to the name of the column in the imported data set100inFIG. 1. Once the user specifies the name of the variable, the system can provide the visualizations including the named variable. Alternatively, the user can specify the type of a visualization such as a scatterplot, a bar graph, or a choropleth. In addition, the system can lay out the visualizations for user viewing such that the user does not have to horizontally scroll to view the visualizations.

The system can enable the user to combine two or more data sets. The system can generate visualizations, as described in this application, for the two or more data sets and can allow the user to drag and drop visualizations from the first data set into the second data set, thereby introducing the variables presented in the dragged-and-dropped visualizations into the second data set.

FIG. 4Aindicates a method to rank the visualizations. The visualizations that are generated by the system, as described in this application, are ranked according to relevance to the user and presented to the user in a ranked order. To rank the visualizations, the system considers visualization standards400, ontology410, and user intent420.

The visualization standards400indicate preferences such as displaying a time variable on the X-axis as opposed Y-axis, or limiting the number of colors presented in a visualization to a predetermined number, such as 20. The visualization standard400can also indicate that geospatial data is visualized using a choropleth, categorical variables are visualized using a bar graph, and numeric variables are visualized using a scatterplot. A categorical variable has values that can be put into a countable number of distinct groups based on a characteristic. For a categorical variable, the categories have no natural order. Numeric variables have values that describe a measurable quantity as a number, like “how many” or “how much”.

The system can determine the user intent420based on the user's proficiency with viewing visualizations, based on the role the user has in the system (editor, analyst, business stakeholder, viewer, collaborator), based on the task the user is performing, and/or based on previously viewed charts, and based on the collected data on the historical use of the system, etc. For example, the system can store a profile indicating all users' and the specific user's proficiency and frequently viewed charts. From this collected data, the system generates a user intent model.

Based on use the user intel model, the system can generate 2D, 3D, 4D, 5D, etc., visualizations indicating relationships between 2, 3, 4, 5, etc., variables, respectively. If the user is highly proficient, such as the user is a frequent user of the system, the system can generate appropriate visualizations indicating relationships between multiple variables.

If the user frequently views choropleths, the system can rank choropleth charts higher. If the user frequently views highly coherent data, the system can rank visualizations containing highly coherent variables higher, etc.

FIG. 4Bshows a visualization of high variability data. The task the user is performing can be opportunity analysis. Opportunity analysis refers to establishing demand and competitive analysis, and studying market conditions to be able to have a clear vision and plan strategies accordingly. Opportunity analysis is a vital process for the growth of an organization and needs to be performed frequently. For the users performing an opportunity analysis task, the system can identify visualizations that have a high amount of variation and/or dispersion, such as visualization430. The system can highly rank visualizations showing a high amount of variation and/or dispersion.

Another example of a task performed by the user can be analyzing Medicaid data for a particular state. The system can automatically highly rank the visualizations showing data for the particular state.

To determine the user's intent, the system can use artificial intelligence/machine learning (AI/ML) to automatically determine the types of visualizations relevant to the user by analyzing the types of visualizations saved and shared by users. The system can gather logs of data based on user interaction with the system, which can be fed into an AI/ML system.

FIG. 5shows an ontology that can be used in filtering the total visualization space as well as ranking visualizations. The ontology can be represented as a directed acyclic visualization (DAG)500. Each node510,520,560,570(only four labeled for brevity) in the DAG can correspond to a variable110,120,130,140inFIG. 1. Each edge530(only one labeled for brevity) can represent a correlation between two nodes510,520. Nodes that have zero correlation between each other do not have an edge connecting them, such as nodes560,570. Nodes that are connected by an edge path550in the DAG500can be represented in a visualization. The edge530can have a weight540which can indicate the strength of the correlation between two nodes510,520. The system includes an algorithm for creating ontologies that leverages meta data from data catalog repositories that exist in the public domain and in many organizations. The system can ingest this meta data or a subset of this meta data to create a DAG that is specific to a given domain of knowledge.

The system can automatically create the DAG500by measuring correlation between variables in the imported data set100inFIG. 1. Alternatively, the system can look at the metadata associated with the imported data set100to generate the DAG500. For example, the metadata can indicate a relationship between variables, which the system can translate into edges in the DAG500. Subsequently, the system can present the automatically generated DAG500to a user, and the user can then modify the DAG. The system can, also, employ an AI/ML to generate the DAG500.

The system can automatically identify independent versus dependent variables. For example, a person data set is independent of a COVID vaccination data set, which is dependent on the person. Once identified, the visualizations can contain the independent variable on the X-axis and the dependent variable on the Y-axis. The system can also use metadata to identify independent and dependent variables. To the dependency between the variables can be represented by using the direction of the edge530, where the independent variable is the source and the dependent variable is the sink associated with the edge. The system tests sets of variables that are dependent and independent for correlation. Correlation is used as an input to the ranking algorithm.

The DAG500can also indicate which variables can be aggregated. For example, the DAG500can indicate that variables that are connected by a path550can be aggregated with functions such as group by, average, sum and count and shown as a single variable in a visualization.

To rank the variables, as described inFIG. 4, the system can highly rank the variables with high correlation, whether positive or negative. In addition, the system can detect outliers in the data, and highly rank the visualizations containing outliers.

FIGS. 6A-6Cshow techniques to visualize three or more variables in a two-dimensional visualization. The visualizations600,610,620are all two-dimensional graphs. However, using other attributes of the visualizations such as size, color, and opacity, additional variables can be visualized in a two-dimensional graph.

For example, inFIG. 6A, visualization600shows three variables in a two-dimensional visualization, namely, lack of health insurance, vaccination level, and county population. The lack of health insurance is shown on the X-axis, vaccination level is shown in the Y-axis, while the county population is indicated by the size of the dot. For example, the county represented by point605has the highest population.

InFIG. 6B, visualization610shows three variables in a two-dimensional visualization, namely, states on the X-axis, death per population of the Y-axis, and social vulnerability index by color. InFIG. 6C, visualization620uses opacity to indicate mental health of population using a choropleth. Size, color, and opacity can be combined to show up to five variables in a single visualization.

The system can represent attributes, size, color, and opacity using a predetermined range for each attribute. The system can obtain the range for each variable to be represented by each attribute. The system can map the range of each attribute to the range of each variable to determine which color, opacity, and or size to use for which variable value.

When choosing whether to represent a third variable using color, opacity or size, the system can use a visualization standard400inFIG. 4. The visualization standard can indicate the preferred ranking of attributes, which can indicate that opacity is less preferred than color and size.

FIGS. 7A-7Bshow use of a force spread to generate a scatterplot. As can be seen inFIG. 7A, scatterplot700contains regions710(only one labeled for brevity) of overlap between data points. To remove the overlap, the user can select the user interface element720, which can indicate to the system to resolve overlaps between data points. As can be seen inFIG. 7B, scatterplot730does not contain overlapping data points.

The system can use a particle simulation algorithm to perform the spreading whereby points are spread from one another based on their relative size. The system can use an animation algorithm to animate that spread. The system can use opposite algorithms to revert back to a relaxed display. Such an algorithm can help users see or appreciate congested or clustered data points where at least some displayed data points overlap other displayed data points.

In one dimensional and two dimensional (1D and 2D) scatter plots, point density creates overlapping marks that makes differentiating individual points difficult. Hover functionality or behaviors in graphical interfaces often attempt to provide detail-on-demand (DOD), but when point density is too great, accurate hover or selection of a desired point becomes impossible to disambiguate.

The system can visualize rectangular data in 1D and 2D scatter and bubble charts as points with radius R (thereby forming a circle with radius R), where the points can correspond to a column in the dataset or can default to a preset value. The system provides a control, such as the user interface element720, that allows the user to toggle force spread on/off.

When the force spread is toggled on, the system can initialize a force simulation where points are treated as bodies with radius R matching the size of their encoded value in the visualization700,730. Thus, each point displayed as a circle with radius R is repelled by its neighboring point by a distance R, so two points (and thus two displayed circles) can be repelled by a total 2R. The force simulation can use a Verlet velocity integrator and body collision. Verlet integration is a numerical method used to integrate Newton's equations of motion. In the simulation, particles attract towards their original location, creating a balance between collision and encoded accuracy. The graphed points can be animated to appear as repelling one another to reflect the position of the underlying simulation as the points move apart and thereby avoid any overlapping points as displayed to a user.

When the force spread is toggled off, the system removes collision forces from the force simulation, and graphed points attract towards their original encoded position. The graphed points animate to reflect the position of the underlying simulation to appear as being attracted to one another.

If the force spread is toggled on again, after the simulation has already been initialized, the system can read collision forces, instead of re-computing them.

The system can optimize various force spread parameters such as force strengths, friction, and system cooldown speed from default values to provide a smooth and pleasing user experience that balances speed of movement with a smoothly animating start and stop effect.

FIG. 8Ashows labels associated with a visualization. The visualization800can include multiple labels810,820,830(only three labeled for brevity). The system can automatically generate labels in various ways. For example, the user can drag and drop the label from another visualization, or the user can drag-and-drop a label from a suggested list of labels into the visualization800. The user can click on a particular data element840, and the system can automatically generate and display a label810. The labels can be animated, and when the user selects the label, such as by clicking on the label, the system can fix the label to the user-selected position. The system can automatically position the label810to avoid collisions between labels and810,820, however, the system can also enable the user to change the position of the label. By only displaying certain labels, the system can highlight particular data in the visualization800.

FIG. 8Bshows an indication of a folder where a visualization is saved. A user can click and save data, such as certain filters and displayed labels. An icon850is then displayed to show that a particular visualization has been saved. The icon850can indicate the visualization860, the user870creating the visualization, and a date and time880when the visualization was created.

FIG. 9shows a search functionality. The search functionality can receive an input from the user and search the visualizations produced by the system to produce the most relevant visualization900. The system provides various search attributes. The system supports a search by the title910or text920describing a visualization, by creator of the visualization, by variables930,940presented in the visualization, etc. The system can also present the multiple results sorted by various criteria such as relevance, alphabetically, etc.

FIG. 10shows filters that can be applied to a visualization1000. A sidebar1010contains filters for the visualized data, which apply to the visualization1000. The filters can include variables contained in the visualization such as county1020, date1030, or death rate1040for the example ofFIG. 10. The filters can also include types of data contained in the visualization1000such as numerical1050, ordinal1060, nominal1070or geographical1080.

Numerical data refers to the data that is in the form of numbers, and not in any language or descriptive form. Often referred to as quantitative data, numerical data is collected in number form and stands different from any form of number data types due to its ability to be statistically and arithmetically calculated.

Ordinal data is a categorical, statistical data type where the variables have natural, ordered categories and the distances between the categories are not known. Nominal data is “labeled” or “named” data which can be divided into various groups that do not overlap. Geographical data refers to data and information that has explicit or implicit association with a location relative to Earth.

The user can save the visualization with or without applied filters. When the user saves the visualization, the applied filters and the labels associated with the visualization are also saved. The system can represent the saved visualization by a visualization icon. By clicking the icon, the user can quickly retrieve the saved visualization. The user can also share the visualization, with or without applied filters and labels, with other users.

FIG. 11shows a user editing a visualization1100. A user can choose labels to show on top of the visualization1100in a sidebar1110, which appear on top of the visualization1100. The labels can themselves be organized into categories by title1120, or by value1130.

FIGS. 12A-12Bshow an automatically generated presentation, e.g., a data story. The system can automatically generate a presentation, such as a PowerPoint presentation using visualizations, text, and/or dashboards to describe one or more imported data sets100inFIG. 1. The system can generate a hierarchy of data, based on the prioritization of various visualizations, and can create an automatic layout of that data. For example, data with higher priority can appear higher in the hierarchy of data.

For example, visualizations1200,1210,1220can be individual visualizations produced by the system. The system can automatically lay them out in separate slides, and can combine the visualizations1200,1210into a single slide. The system can also enable the user to generate a new visualization and include the new visualization in the presentation.

The system can automatically provide links1230,1240,1250,1260to the data set. When a user clicks on any one of the links1230,1240,1250,1260the system can provide the information contained in the data set. The data set can be live and changing. The link1230,1240,1250,1260can connect the user to the live data set, or the user can fix the link to the data set recorded at a particular time. The system can display the time when the data set was obtained to thereby indicate to a user/reader how fresh data provided in a visualization is.

The system can change the layout to be vertical or horizontal. For example, visualizations1200,1210,1220are horizontal, while the text1270is vertical. The system can use an AI/ML model to generate the appropriate text based on the visualization and the associated data set. The appropriate text can include the title1280and text1270describing the data. The system can automatically highlight and adjust the font size of various portions of the text1270.

The system can receive a query from the user asking why a particular visualization has a particular priority. The system can provide an explanation to the user including the factors used in determining the ranking.

FIG. 13is a flowchart of a method to generate a visualization of at least a portion of a data set, such as a healthcare data set. In step1300, a hardware or software processor performing the instructions described in this application can obtain the data set including multiple variables. In step1310, the processor can extract the multiple variables from the data set.

In step1320, based on the data set, the processor can create an ontology indicating multiple relationships between two or more variables among the multiple variables, where a relationship among multiple relationships indicates a correlation between the two or more variables. The ontology can indicate a dependent and an independent variable among multiple variables. For example, the dependent/independent relationship can be represented by a direction of an edge530inFIG. 5. An independent variable can be a source of the edge530, while the dependent variable can be the destination of the edge. Further, the ontology can indicate a subset of variables among the multiple variables to aggregate.

In step1330, the processor can obtain an intent associated with the user and a visualization standard. The intent associated with the user can include a user role within an organization. The visualization standard can indicate a visual attribute associated with the visualization such representing categorical variables using a bar graph and/or representing numerical variables using a scatterplot.

In step1340, based on the ontology, the intent and the visualization standard, the processor can generate a sequence of multiple visualizations to present to the user. The processor can determine the multiple visualizations to present to the user by determining multiple permutations of the two or more variables. In each permutation, a different variable is assigned to the X-axis or to a Y-axis. A permutation among the multiple permutations of the two or more variables corresponds to a visualization among the multiple visualizations. For example, if the data set contains 20 variables, the number of possible permutations of two-dimensional visualizations that can be generated is 20*19=380. If the processor is generating a multidimensional visualization, the number of visualizations increases drastically. For example, if the processor is considering just permutations of two variables and three variables, the number of visualizations that can be generated becomes 20*19+20*19*18=7220. If the system evaluates the space of higher dimensional visualizations as well, and includes 4 and 5 number combinations, the visualization space grows to 1,983,980.

The processor can rank the multiple visualizations based on the correlation between the two or more variables, the visualization standard and the intent associated with the user. Based on the ranking, the processor can present only the top ranked permutations. Finally, in step1350, the processor can present the sequence of multiple visualizations based in the order of ranking.

The processor can generate a visualization of any set of variables, such as healthcare variables shown herein. The processor can obtain the healthcare data set indicating a maternity cost, gender, age, geographical location, and health risk associated with maternity. Based on the ontology, the processor can create an aggregate variable including age, geographical location, and health risk associated with maternity. The processor can generate a visualization of the maternity cost and the aggregate variable.

The processor can determine the user intent in various ways. For example, the processor can determine a role associated with the user within an organization, where the role indicates a proficiency associated with the user in interpreting a visualization, and where the proficiency includes high proficiency or a low proficiency. Upon determining that the proficiency is high, the processor can generate a visualization among multiple visualizations including more variables than when the proficiency is low.

In another example, to determine the user intent, the processor can determine a task performed on the data set. The processor can determine whether the task performed of the data set includes an opportunity analysis. Upon determining that the task form of the data set includes the opportunity analysis, the processor can increase ranking of a visualization showing dispersion and/or variation.

In a third example, to determine the user intent, the processor can determine a chart frequently used by the user. The processor can assign a higher ranking to the chart frequently used by the user.

To rank multiple visualizations, the processor can obtain a degree of correlation between the two or more variables. The processor can determine an existence of an outlier value between the two or more variables. The processor can determine a type associated with the two or more variables, where the type includes numerical data or categorical data. Based on the degree of correlation, the existence of the outlier value, the type associated with two or more variables, and the user intent, the processor can rank the multiple visualizations. The processor can present visualizations with higher ranking.

The processor can obtain the visualization standard indicating to include time on an X-axis, to present a categorical variable using a bar graph, and to present a numerical variable using a scatterplot. The visualization standard can also include a color range. The processor can generate a visualization in the sequence of multiple visualizations conforming to the visualization standard.

The processor can use other attributes of the visualization such as size, color, and/or opacity to present additional variables in the visualization. The processor can obtain the visualization standard indicating an attribute to vary based on the two or more variables, where the attribute includes size, color, and opacity. The processor can obtain a predetermined range associated with the attribute. The processor can determine a range associated with a variable among the two or more variables. The processor can map the predetermined range associated with the attribute to the range associated with the variable. Based on the mapping, the processor can present the attribute in a visualization in the sequence of multiple visualizations conforming to the visualization standard.

The processor can enable the user to merge two data sets. The processor can obtain a second data set. The processor can generate a second sequence of multiple visualizations to present to the user based on the second data set. The processor can receive from the user an indication of a second visualization in the second sequence of multiple visualizations and a first visualization in the first sequence of multiple visualizations. The processor can create a third visualization based on the second visualization and the first visualization. If the two visualizations are not compatible, such as when two visualizations do not share any common variables, the processor can produce an error and not generate the third visualization.

In addition, when merging two data sets, the system can analyze the visualizations in each data set, and recommend which visualizations from which data set can be joined. For example, the system can identify common variables in the visualizations, and recommend joining visualizations having at least one common variable.

The processor can create a presentation, such as a data story. The processor can create a presentation based on the multiple visualizations by allowing the user to select a visualization among the multiple visualizations. Upon selection, the processor can automatically adjust the layout of the presentation to include the visualization. The processor can create a link associated with the visualization, where upon selection of the link a portion of the healthcare data set associated with the visualization is presented to the user. In addition, the processor can enable the user to edit/create their own tables.

The processor can provide a search functionality to search the multiple visualizations using a search query. The processor can find multiple matching visualizations corresponding to the search query. The processor can present a visualization having highest-ranking among the multiple matching visualizations.

Computer System

FIG. 14is a block diagram that illustrates an example of a computer system1400in which at least some operations described herein can be implemented. As shown, the computer system1400can include: one or more processors1402, main memory1406, non-volatile memory1410, a network interface device1412, video display device1418, an input/output device1420, a control device1422(e.g., keyboard and pointing device), a drive unit1424that includes a storage medium1426, and a signal generation device1430that are communicatively connected to a bus1416. The bus1416represents one or more physical buses and/or point-to-point connections that are connected by appropriate bridges, adapters, or controllers. Various common components (e.g., cache memory) are omitted fromFIG. 14for brevity. Instead, the computer system1400is intended to illustrate a hardware device on which components illustrated or described relative to the examples of the Figures and any other components described in this specification can be implemented.

The network interface device1412enables the computing system1400to mediate data in a network1414with an entity that is external to the computing system1400through any communication protocol supported by the computing system1400and the external entity. Examples of the network interface device1412include a network adaptor card, a wireless network interface card, a router, an access point, a wireless router, a switch, a multilayer switch, a protocol converter, a gateway, a bridge, bridge router, a hub, a digital media receiver, and/or a repeater, as well as all wireless elements noted herein.

The memory (e.g., main memory1406, non-volatile memory1410, machine-readable medium1426) can be local, remote, or distributed. Although shown as a single medium, the machine-readable medium1426can include multiple media (e.g., a centralized/distributed database and/or associated caches and servers) that store one or more sets of instructions1428. The machine-readable (storage) medium1426can include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the computing system1400. The machine-readable medium1426can be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium can include a device that is tangible, meaning that the device has a concrete physical form, although the device can change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite this change in state.

In general, the routines executed to implement examples herein can be implemented as part of an operating system or a specific application, component, program, object, module, or sequence of instructions (collectively referred to as “computer programs”). The computer programs typically comprise one or more instructions (e.g., instructions1404,1408,1428) set at various times in various memory and storage devices in computing device(s). When read and executed by the processor1402, the instruction(s) cause the computing system1400to perform operations to execute elements involving the various aspects of the disclosure.

Remarks