Using Semantic Alignment and Contextual Recommendations to Present Time Series Metrics
RemixTape addresses the challenge of bridging narrative conversations around metric values by providing an interactive canvas for aligning and recommending visualizations, ensuring coherent and consistent presentations.
Patent Information
- Application Number
- JP2025513371
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-01-27
- Filing Date
- 2023-08-24
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2043-08-24
AI Technical Summary
Existing systems fail to effectively bridge the narrative around metric value conversations, ensuring interactivity and consistency across data visualizations, leading to outdated and disjointed presentations.
RemixTape provides a canvas-based interface for interactive line chart representations, allowing users to juxtapose, overlay, and synchronize charts with text commentary, and offers semantic alignment and contextual recommendations for metric visualizations.
Enhances the preparation and communication of narratives about metrics by ensuring coherency and semantic consistency across presentations, improving user experience and satisfaction.
Smart Images

Figure 2025527914000001_ABST
Abstract
Description
[Technical Field]
[0001] [Priority] This application is a continuation of U.S. Patent Application No. 17 / 956,720 filed on September 29, 2022, U.S. Patent Application No. 17 / 956,731 filed on September 29, 2022, U.S. Patent Application No. 17 / 956,746 filed on September 29, 2022, U.S. Patent Application No. 18 / 102,609 filed on January 27, 2023, U.S. Patent Application No. 18 / 102,678 filed on January 27, 2023, and U.S. Patent Application No. 18 / 102,586 filed on January 27, 2023, which claim priority to U.S. Provisional Patent Application No. 63 / 403,822 filed on September 5, 2022, and U.S. Provisional Patent Application No. 63 / 408,057 filed on September 19, 2022, respectively. Each of the aforementioned applications is incorporated herein by reference in its entirety.
[0002] [Technical field] The disclosed implementations relate generally to data visualization, and more particularly to systems, methods, and user interfaces that enable users to interact with and communicate data visualizations of time series metrics. [Background technology]
[0003] Data visualization applications allow users to visually understand data sets and interact with data visualizations. Visual analysis of data sets, including distributions, trends, outliers, and other factors, is important in making business decisions. Some data sets are very large or complex and contain many data fields. Some data elements are calculated based on data from selected data sets. To aid in data understanding and analysis, various tools can be used, including natural language interfaces and dashboards with multiple data visualizations to aid in visual analysis tasks. Summary of the Invention
[0004] Quantitative values (e.g., key performance indicator (KPI) values or metric values) and how they change over time are becoming an increasingly common topic of discussion within organizations.
[0005] Currently, presenters who prepare and communicate narratives about metrics tend to rely on slideware and screenshots from different sources and creators. For example, to discuss a metric, a presenter might copy and paste a static screenshot of the metric values or a line chart into a slide deck and then discuss the contents in a meeting. However, in today's fast-paced environment, this data is likely to be out of date between the time the chart is first created and the time it is finally shared and / or presented. Another approach to communicating a narrative is for the owner of a metric collection to share the data (e.g., a folder) with anyone interested in learning about the metrics and their values. However, sharing a folder does not provide any narrative or structure about the values and how (or why) they evolve over time.
[0006] Therefore, there is a need for improved systems, methods, and devices that bridge the metric value conversations around collections of metrics, while preserving the interactivity of data visualizations (e.g., a feature found in some data dashboards, such as Tableau) while ensuring overall consistency across content.
[0007] This disclosure provides a system and method for collecting, annotating, and structuring narratives about ad-hoc collections of metrics. The disclosed system (e.g., application), also referred to as "RemixTape," simplifies the process of preparing and communicating narratives about metrics while preserving interactivity of visualizations and ensuring overall coherency across content.
[0008] As disclosed, RemixTape includes a graphical user interface (eg, a canvas-based interface) for laying out interactive line chart representations of metrics.
[0009] As disclosed, RemixTape provides a scene and card-based canvas that allows for remixing interactive line chart representations of metrics, including the ability to juxtapose, overlay, and synchronize sequences of charts, as well as interleave charts with text commentary.
[0010] As disclosed, RemixTape provides semantic alignment between cards and interfaces by harmonizing how metrics are shown relative to each other (e.g., by harmonizing scales and providing metric descriptions adjacent to line chart visualizations).
[0011] As disclosed, RemixTape provides contextual recommendations for metric visualizations as a user (e.g., an author) assembles content on a canvas. For example, in some implementations, recommendations are progressively refined as the user adds more content (e.g., more metrics or more visualizations) to the canvas.
[0012] As disclosed, RemixTape refines recommendations according to how a user segments the canvas into scenes and cards. For example, in some implementations, the RemixTape interface augments the metric curation and sequencing process with additional chart recommendations based on which metrics are currently placed on the canvas.
[0013] As disclosed, RemixTape hybridizes the functionality of presentation and data analysis tools. For example, on the continuum between slide presentation tools and dashboard applications or data analysis tools, RemixTape sits near the midpoint between these sets of tools in terms of its functionality and preferred use cases. On the one hand, RemixTape provides line charts of available metrics, but it is not a visualization specification tool. On the other hand, RemixTape enables the assembly of linear sequences of visualization cards interleaved with text annotation cards; unlike slideware, these components remain interactive, and their value drives content recommendations aimed at enriching the narrative and providing context.
[0014] As disclosed, RemixTape enables remixed sequences of visualizations and text to be delivered to audiences in synchronous meetings and presentations, or shared as card-based interactive documents via collaboration platforms such as Slack® and Teams®.
[0015] Thus, the disclosed system and / or method advantageously improves the preparation and communication of narratives about metrics. For example, recommendations in RemixTape are focused on facilitating narrative sequencing during presentation authoring (as opposed to, e.g., facilitating data coverage or analytical tasks / intent during open-ended data exploration). RemixTape considers the active state of a presentation and recommends visualizations that allow authors / presenters to switch presentation context by drilling down into previously discussed metrics, zooming out for an overview when appropriate, or focusing on related metrics. This improves narrative structure. Furthermore, RemixTape allows users to reconcile differences between disparate metrics (e.g., from different sources with various time domains, granularities, and / or quantitative scales) by juxtaposing, overlaying, and semantically aligning metrics through direct manipulation. These transformations serve to add coherency and semantic consistency to data-driven presentations. Thus, the disclosed system and / or method improves user experience and satisfaction.
[0016] The systems, methods, and devices of the present disclosure each have several innovative aspects, no single one of which is solely responsible for its desirable attributes.
[0017] According to some implementations, a method for recommending visualizations for an interactive presentation of time-series metrics is executed on a computing device 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 method includes receiving a user selection of one or more data sources. The method includes identifying a plurality of metrics corresponding to the one or more data sources. Each metric of the plurality of metrics has a respective time attribute. The method includes displaying a data schema and a filter panel in a graphical user interface. The interface also displays a canvas area for adding one or more scenes to the interactive presentation. The method includes receiving a first user input to add a data visualization to a first visualization card in a first scene of the interactive presentation. In response to the first user input, the method includes calculating, for each metric of the plurality of metrics when the first scene is an initial scene to be added to the canvas area, a respective parameter measuring the variability of the value of the respective metric. The method includes identifying a first subset of metrics from the plurality of metrics based on the calculated parameter. The method includes generating a respective data visualization for each metric in a first subset of metrics. The method includes displaying the generated data visualizations in a recommendations area of a graphical user interface. The method includes receiving a user selection of a first data visualization from the plurality of data visualizations that corresponds to a first metric in the subset of metrics. The method includes populating a first visualization card with the first data visualization in response to the user selection.
[0018] In some implementations, generating each data visualization includes retrieving (i) a metric definition for a metric corresponding to each data visualization and (ii) data corresponding to the metric.
[0019] In some implementations, the first data visualization is a line chart.
[0020] In some implementations, the method further includes receiving a second user input to add the first visualization card to the first scene before the first user input. The method includes displaying a blank visualization card in the first scene in response to the second user input. Populating the first visualization card with the first data visualization includes updating the blank visualization card to include the first data visualization.
[0021] In some implementations, the first user input includes a user selection of a blank visualization card.
[0022] In some implementations, the method includes, in response to a first user input, determining one or more metrics corresponding to a second visualization card having a second data visualization and corresponding to a second metric among the plurality of metrics when the second visualization card is populated into the first scene. The method includes identifying a second subset of metrics from the plurality of metrics, excluding one or more metrics. For each metric in the second subset of metrics, the method includes calculating a respective correlation coefficient between (i) the value of the metric and (ii) the data value displayed in the second data visualization. The method includes identifying a third metric from the second subset of metrics based on the calculated correlation coefficient. The method includes generating a third data visualization corresponding to the third metric. The method includes displaying the third data visualization in a recommendation area.
[0023] In some implementations, generating a third data visualization corresponding to the third metric includes retrieving a metric definition and / or associated data corresponding to the third metric, and generating the third data visualization using the metric definition and associated data.
[0024] In some implementations, the second visualization card is immediately before the first visualization card in the first scene.
[0025] In some implementations, the third metric has the strongest correlation with the second metric among the second subset of metrics.
[0026] In some implementations, the first data visualization includes data values spanning a first date / time range. The method further includes, after populating the first data visualization into a first visualization card, receiving a second user input for adding a second visualization card within the first scene. The method includes, in response to the second user input, generating one or more visualization recommendations for the second visualization card. The one or more visualization recommendations include one of a first visualization recommendation that filters values of the first metric to a subset of data values corresponding to a second date / time range that is narrower than the first date / time range, or a second visualization recommendation that spans the entire time period of one or more data sources.
[0027] In some implementations, the subset of data values corresponds to local maxima or minima in the first data visualization.
[0028] In some implementations, the method further includes identifying a subset of the data values using a moving average algorithm, generating a first line chart including the subset of the data values, and displaying the first line chart in the recommendation area.
[0029] In some implementations, the one or more data sources include a second metric having a categorical data field. The method further includes generating a third visualization recommendation including a second line chart having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field. The method further includes displaying the third visualization recommendation in the recommendation area.
[0030] In some implementations, the one or more visualization recommendations include a third visualization recommendation that corresponds to a second metric that is different from the first metric.
[0031] In some implementations, the one or more data sources include a second metric having a categorical data field. The method includes generating a second data visualization having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field. The method includes displaying the second data visualization in a recommendation area.
[0032] In some implementations, the first data visualization and the second data visualization are displayed simultaneously in the recommendations area.
[0033] In some implementations, the method further includes receiving a user selection of a second metric from the plurality of metrics in the data schema and filter panel, and displaying a second data visualization corresponding to the second metric in the recommendations area in response to the user selection.
[0034] In some implementations, the method further includes receiving a user selection of a second metric and a third metric from the plurality of metrics in the data schema and filter panel. In response to the user selection, the method further includes generating a second data visualization including two lines corresponding to the second metric and the third metric, respectively. The method further includes displaying the second data visualization in the recommendation area.
[0035] In some implementations, each of the multiple data visualizations is a line graph showing the change in value of the respective metric over the date / time range corresponding to the respective metric.
[0036] In some implementations, identifying the first subset of metrics includes ranking the plurality of metrics (e.g., in ascending or descending order) based on their respective calculated parameters, and identifying the first subset of metrics according to the ranking.
[0037] In some implementations, identifying the first subset of metrics includes determining that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold.
[0038] According to some implementations, a method for recommending visualizations for an interactive presentation of time-series metrics is executed on a computing device 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 method includes receiving a user selection of one or more data sources. The method includes identifying a plurality of metrics corresponding to the one or more data sources. Each metric of the plurality of metrics has a respective time attribute. The method displays, in a graphical user interface, a canvas area for adding one or more scenes to the interactive presentation. The method includes receiving a first user input to add a first data visualization to a first visualization card in a first scene of the interactive presentation. In response to the first user input, the method calculates, for each metric of the plurality of metrics, a respective parameter measuring the variability of the value of the respective metric when the canvas area includes a previous scene having a second visualization card with a second data visualization. The method includes identifying a first subset of metrics from the plurality of metrics based on the calculated parameter. The method includes generating a respective data visualization for each metric in a first subset of metrics. The method includes identifying a first metric from the plurality of metrics to which a second data visualization corresponds. The method includes determining whether the first subset of metrics includes the first metric. The method includes displaying the plurality of generated data visualizations in a recommendation area of a graphical user interface according to the determination.
[0039] In some implementations, generating each data visualization includes retrieving (i) a metric definition for a metric corresponding to each data visualization, and / or (ii) data corresponding to the metric.
[0040] In some implementations, the step of displaying the plurality of generated data visualizations in accordance with the determination includes, when the first subset of metrics includes the second metric, lowering the priority of the second metric in the first subset.
[0041] In some implementations, the multiple data visualizations are displayed as a list in the recommendations area, and decreasing the priority of the second metric includes changing the order in which the second data visualizations are displayed in the list.
[0042] In some implementations, decreasing the priority of the second metric includes excluding the second visualization from the displayed plurality of data visualizations.
[0043] In some implementations, the method includes receiving a user selection of a first data visualization from the plurality of data visualizations that corresponds to a second metric of the subset of metrics, and populating a first visualization card with the first data visualization in response to the user selection.
[0044] In some implementations, the first data visualization includes data values spanning a first date / time range. The method includes, after populating a first visualization card with the first data visualization, receiving a second user input for adding a third visualization card within the first scene. The method includes, in response to the second user input, generating one or more visualization recommendations for the third visualization card. The one or more visualization recommendations include one of a first visualization recommendation that filters values of the first metric to a subset of data values corresponding to a second date / time range that is narrower than the first date / time range, or a second visualization recommendation that spans the entire time period of one or more data sources.
[0045] In some implementations, the subset of data values corresponds to local maxima or minima in the first data visualization.
[0046] In some implementations, the method further includes identifying a subset of the data values using a moving average algorithm, generating a first line chart including the subset of the data values, and displaying the first line chart in the recommendation area.
[0047] In some implementations, the one or more data sources include a second metric having a categorical data field. The method further includes generating a line chart having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field, and displaying the line chart in the recommendation area.
[0048] In some implementations, the graphical user interface includes a data schema and a filter panel that displays a plurality of metrics. The method further includes receiving a user selection of a second metric from the plurality of metrics in the data schema and the filter panel. In response to the user selection, the method includes displaying a second data visualization corresponding to the second metric in the recommendation area.
[0049] In some implementations, the graphical user interface includes a data schema and a filter panel that displays a plurality of metrics. The method further includes receiving a user selection of a second metric and a third metric from the plurality of metrics in the data schema and the filter panel. In response to the user selection, the method includes generating a second data visualization that includes two lines corresponding to the second metric and the third metric, respectively. The method includes displaying the second data visualization in a recommendation area.
[0050] In some implementations, each of the multiple data visualizations is a line graph showing the change in value of the respective metric over the date / time range corresponding to the respective metric.
[0051] In some implementations, identifying the first subset of metrics includes ranking the plurality of metrics in descending order based on the calculated parameters, and identifying the first subset of metrics according to the ranking.
[0052] In some implementations, identifying the first subset of metrics includes determining that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold.
[0053] According to some implementations, a method for presenting time-series metrics is executed on a computing device 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 method includes displaying, in a graphical user interface, a canvas area including one or more scenes. The one or more scenes include a first scene having a first visualization card. The method includes displaying, in the graphical user interface, a recommendation area including one or more data visualizations. Each data visualization of the one or more data visualizations corresponds to a respective metric of a data source. Each metric has a respective time attribute. The method includes displaying, in the graphical user interface, a scene summary for each of the one or more scenes, including: (i) a respective count of visualization cards corresponding to the scene; (ii) a respective count of text cards corresponding to the scene; (iii) a respective count of unique metrics corresponding to the scene; and (iv) a respective cumulative temporal span corresponding to the scene.
[0054] In some implementations, each cumulative time span is displayed as a graphical element having a length proportional to the cumulative time span.
[0055] In some implementations, the one or more data visualizations include a first data visualization having a first temporal granularity. The method further includes receiving a user designation of a second temporal granularity for the first data visualization, the second temporal granularity being different from the first temporal granularity. In accordance with the user designation, the method updates the data marks in the first data visualization to include a subset of the data marks corresponding to the second temporal granularity.
[0056] In some implementations, the method further includes displaying a data schema and a filter panel in the graphical user interface, wherein the user specification includes a user selection of a user interface element in the data schema and the filter panel that corresponds to the second time granularity.
[0057] In some implementations, the method further includes displaying the plurality of metrics in a data schema and filter panel of the graphical user interface.
[0058] In some implementations, the plurality of metrics corresponds to one or more data sources. The method further includes determining start and end dates corresponding to the plurality of metrics from the one or more data sources. The method displays the start and end dates in the data schema and in the filter panel.
[0059] In some implementations, the one or more data visualizations include a first data visualization having a time axis domain including a start date and an end date. The method further includes receiving user input modifying the start date and / or the end date. The method includes modifying the time axis domain of the first data visualization according to the modified start date and / or the end date according to the user input. The method displays the updated first data visualization with the modified time axis domain in the recommendation area.
[0060] In some implementations, the first data visualization includes a plurality of data marks, including data marks corresponding to the start date and the end date, and the updated first data visualization includes a subset of the plurality of data marks filtered according to the modified time axis domain.
[0061] In some implementations, the first data visualization is a line chart.
[0062] In some implementations, the method includes receiving a user input to add a first data visualization corresponding to a first metric to a first visualization card, and updating a display of the first visualization card to include the first data visualization in response to the user selection.
[0063] In some implementations, the method includes updating a scene summary by incrementing a count of each unique metric corresponding to the first scene when the first data visualization corresponds to a distinct metric in the first scene.
[0064] In some implementations, the method includes updating the scene summary in response to a user selection by incrementing a count of each of the visualization cards corresponding to the first scene.
[0065] In some implementations, the first scene includes a second visualization card adjacent to the first visualization card. The second visualization card has a second data visualization. The method includes receiving a user input to specify that the first data visualization be merged with the second data visualization. In response to the user input, the method includes merging the first data visualization and the second data visualization into a single data visualization when (i) the first data visualization and the second data visualization share a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization.
[0066] In some implementations, the method includes generating one or more data visualizations before displaying the one or more data visualizations in the recommendations area, the generating step including identifying a plurality of metrics corresponding to a data source, each metric of the plurality of metrics having a respective time attribute, calculating, for each metric of the plurality of metrics, a respective parameter measuring variability in values of the respective metric, identifying a subset of metrics from the plurality of metrics based on the calculated parameter, retrieving a respective data visualization for each metric in the subset of metrics, and displaying the one or more retrieved data visualizations in the recommendations area.
[0067] In some implementations, when the canvas area includes a second scene having a second visualization card with a second data visualization, the step of generating one or more data visualizations further includes: (i) determining a second metric from the plurality of metrics to which the second data visualization corresponds; (ii) determining whether a subset of the metrics includes the second metric; and (iii) when the subset of metrics includes the second metric, lowering the priority of the second metric in the subset.
[0068] According to some implementations, a method for combining visualization cards in a time-series metric presentation is executed on a computing device 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 method includes displaying a canvas area in a graphical user interface, the canvas area including a first scene. The first scene includes a first visualization card having a first data visualization and a second visualization card adjacent to the first visualization card. The second visualization card has a second data visualization. The method includes receiving user input specifying that the first data visualization be merged with the second data visualization. The method includes, in response to user input, merging the first data visualization and the second data visualization into a single data visualization when (i) the first data visualization and the second data visualization share a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization.
[0069] In some implementations, the first range of values has a first unit of measure, and the second range of values has a second unit of measure that is different from the first unit of measure.
[0070] In some implementations, the method further includes displaying a legend including the first unit of measure and the second unit of measure along with the single data visualization.
[0071] In some implementations, the single data visualization includes a horizontal axis having a common time period and a vertical axis having a range of values common to the first range of values and the second range of values.
[0072] In some implementations, the method further includes displaying the single data visualization on the first visualization card.
[0073] In some implementations, displaying the single data visualization on the first data visualization card includes removing the second visualization card from the first scene.
[0074] In some implementations, the first visualization card is positioned to the left of the second visualization card in the first scene.
[0075] In some implementations, each of the first data visualization and the second data visualization is a line graph.
[0076] In some implementations, the single data visualization is a line graph consisting of two lines.
[0077] In some implementations, the method determines whether (i) the first data visualization includes a first range of values on a vertical axis and (ii) the second data visualization includes a second range of values on the vertical axis that is substantially different from the first range of values. In this case, when a first user input selects a vertical axis of the first data visualization, the method displays a user-selectable interface element adjacent to the vertical axis of the first data visualization for converting values on the vertical axis from absolute to relative values. The method includes receiving a first user selection of the user-selectable interface element. In response to the first user selection, the method includes converting the first range of values to a relative scale based on an initial value appearing in the first data visualization. The method includes displaying the user-selectable interface element adjacent to the vertical axis of the second data visualization in response to a second user input selecting a vertical axis of the second data visualization. The method includes receiving a second user selection of the user-selectable interface element. The method includes converting the second range of values to a relative scale relative to a first value appearing in the second data visualization in response to a second user selection. The method includes receiving a third user input specifying merging the first data visualization with the second data visualization. The method includes merging the first data visualization and the second data visualization into a single data visualization in accordance with the third user input.
[0078] In some implementations, the method further includes displaying, in the graphical user interface, a recommendation region including one or more data visualizations, each data visualization corresponding to a respective metric of the data source, each metric having a respective time attribute.
[0079] According to some implementations, a method for linking text and visualizations in a time-series metric presentation is executed on a computing device 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 method includes displaying a canvas area including a first scene in a graphical user interface. The first scene includes a first visualization card having a first data visualization and a first text card adjacent to the first visualization card. The method includes receiving, via the first text card, (i) text input from a user and (ii) a user selection of a first user interface element to link the first text card to the first visualization card. The method includes determining, according to the receiving step, whether the text input includes a first representation having a first time span that intersects with the time domain of the first data visualization. The method includes visually highlighting a first portion of a first data visualization corresponding to a first time span in accordance with a determination that the text input includes a first representation and in response to a first user interaction with a first region of a first text card that includes the first representation.
[0080] In some implementations, the method further includes visually de-emphasizing other portions of the first data visualization in parallel with visually emphasizing the first portion of the first data visualization.
[0081] In some implementations, the first data visualization is a line chart.
[0082] In some implementations, visually highlighting the first portion of the first data visualization includes displaying a portion of a line chart that corresponds to the first time span.
[0083] In some implementations, the first scene includes a second visualization card having a second data visualization. The method further includes receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card. The method includes determining that a first time span included in the first representation intersects with a time domain of the second data visualization. The method includes receiving a second user interaction with a first region of the first text card. In response to the second user interaction, the method includes simultaneously visually highlighting (i) a first portion of the first data visualization and (ii) a second portion of the second data visualization, where the first portion and the second portion correspond to the first time span.
[0084] In some implementations, the first text card is positioned between the first visualization card and the second visualization card.
[0085] In some implementations, each of the first data visualization and the second data visualization is a line chart.
[0086] In some implementations, the first scene includes a second visualization card having a second data visualization. The text input includes the second representation, which is different from the first representation. The second representation includes a second time span. The method further includes receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card. The method includes determining that the second representation intersects with a time domain of the second data visualization. The method includes receiving a second user interaction with a second region of the first text card that includes the second representation. In response to the second user interaction, the method includes simultaneously (i) visually highlighting a portion of the second data visualization that corresponds to the second time span and (ii) displaying the first data visualization as a whole.
[0087] In some implementations, the first text card includes a plurality of text input elements through which text input from the user is received.
[0088] In some implementations, the plurality of text input elements includes a first text input element and a second text input element, the first representation is located within the first text input element, and the second representation is located within the second text input element.
[0089] In some implementations, the method further includes displaying, in the graphical user interface, a recommendation region including one or more data visualizations, each data visualization corresponding to a respective metric of the data source, each metric having a respective time attribute.
[0090] According to some implementations, a method for presenting time-series metrics is executed on a computing device 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 method includes displaying a canvas area including a first scene in a graphical user interface. The first scene has a first visualization card. The method includes displaying a recommendation area including one or more data visualizations in the graphical user interface. Each data visualization of the one or more data visualizations corresponds to a respective metric of one or more metrics of a data source. Each metric has a respective time attribute. The method includes receiving a user selection to add a first data visualization corresponding to a first metric of the one or more metrics to the first visualization card. The method includes updating a display of the first visualization card to include the first data visualization in response to the user selection.
[0091] In some implementations, the method includes generating one or more data visualizations before displaying the one or more data visualizations, wherein generating the one or more data visualizations includes, for each data visualization of the one or more data visualizations, retrieving a metric definition for each metric corresponding to the respective data visualization.
[0092] In some implementations, the first data visualization is a line chart.
[0093] In some implementations, the method further includes, after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with the first visualization card, the user interaction further specifying a division point on a temporal axis of the first data visualization, and displaying, in response to the user interaction, one or more user-selectable interface elements for filtering a date / time range of the first data visualization. The one or more user-selectable interface elements include one or more of: a first user-selectable interface element that, when selected, holds data points of the first data visualization before the division point; a second user-selectable interface element that, when selected, holds data points of the first data visualization after the division point; and a third user-selectable interface element that, when selected, (i) holds data points of the first data visualization before the division point on the first visualization card and (ii) displays data points of the first data visualization after the division point on a second visualization card adjacent to the first visualization card.
[0094] In some implementations, the first data visualization includes a time series axis having values from a start date / time value to an end date / time value. The method further includes generating, in response to a user selection of the first user-selectable interface element, an updated first data visualization including an updated time series axis having values from (i) the start date / time value to (ii) a date / time value corresponding to the division point. The method includes displaying the updated first data visualization on a first visualization card.
[0095] In some implementations, the first data visualization includes a time series axis having values from a start date / time value to an end date / time value. The method further includes, in response to a user selection of a second user-selectable interface element, generating an updated first data visualization including an updated time series axis having values from (i) a date / time value corresponding to the division point to (ii) an end date / time value. The method includes displaying the updated first data visualization on a first visualization card.
[0096] In some implementations, the first data visualization includes a time series axis having values from a start date / time value to an end date / time value. The method further includes, in response to a user selection of a third user-selectable interface element, generating an updated first data visualization including (i) an updated time series axis having values from the start date / time value to a first date / time value corresponding to the division point. The method includes generating (ii) a second data visualization including a time series axis having values from the first date / time value to (ii) an end date / time value. The method includes simultaneously displaying (i) the updated first data visualization on the first visualization card and (ii) the second data visualization on a second visualization card adjacent to the first visualization card.
[0097] In some implementations, the method further includes, after updating the display of the first visualization card to include the first data visualization, receiving a user interaction with the first data visualization on the first visualization card. The user interaction further specifies a date / time range on a timeline axis of the first data visualization. The method includes, in response to the user interaction, displaying a plurality of user-selectable interface elements for filtering the date / time range of the first data visualization. The plurality of user-selectable interface elements includes a first user-selectable interface element that, when selected, holds data points of the first data visualization that are within the date / time range specified via the user interaction, and a second user-selectable interface element that, when selected, holds data points of the first data visualization that are outside the date / time range specified via the user interaction.
[0098] In some implementations, the date / time range specified via user interaction is from a first date / time value to a second date / time value. The method further includes generating, in response to a user selection of the first user-selectable interface element, an updated first data visualization including an updated time series axis having values from the first date / time value to the second date / time value. The method includes displaying the updated first data visualization on a first visualization card.
[0099] In some implementations, the first data visualization includes a time series axis having values from a start date / time value to an end date / time value. The date / time range is from the first date / time value to a second date / time value. The method further includes generating, in response to a user selection of a second user-selectable interface element, an updated first data visualization including an updated time series axis having values from the start date / time value to the first date / time value. The method includes generating a second data visualization including a time series axis having values from the second date / time value to the end date / time value. The method includes simultaneously displaying (i) the updated first data visualization on the first visualization card and (ii) the second data visualization on a second visualization card adjacent to the first visualization card.
[0100] In some implementations, the method further includes receiving a user interaction with a vertical axis of the first data visualization in the first visualization card. The method includes displaying a plurality of user-selectable interface elements in response to the user interaction. The plurality of user-selectable interface elements include: (1) a first user-selectable interface element that, when selected, toggles between (i) a first vertical axis scale starting from zero and (ii) a second vertical axis scale starting from a minimum value; and (2) a second user-selectable interface element that, when selected, toggles between (i) a third vertical axis scale having absolute values and (ii) a fourth vertical axis scale having relative values indexed relative to a first value appearing in the first data visualization.
[0101] In some implementations, the method further includes, after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with a time series axis of the first data visualization on the first visualization card. The method includes, in response to the user interaction, displaying a plurality of user-selectable interface elements. The plurality of user-selectable interface elements includes a first user-selectable interface element that, when selected, toggles between (i) a first time series axis scale having absolute date / time values and (ii) a second time series axis scale having dates relative to a first date in the first data visualization.
[0102] In some implementations, after updating the display of the first visualization card to include the first data visualization, when the first scene includes a second visualization card adjacent to the first visualization card and the second visualization card has the second data visualization, the method further includes displaying a user-selectable element in response to a user selection of a time series axis of the second data visualization. The method includes receiving a user selection of the user-selectable element. The method includes generating an updated second data visualization having an updated time series axis with data values that match the data values of the time series axis of the first data visualization in response to the user selection of the user-selectable element. The method includes displaying the updated second data visualization.
[0103] In some implementations, after updating the display of the first visualization card to include the first data visualization, when the first scene includes a second visualization card adjacent to the first visualization card and the second visualization card has the second data visualization, the method further includes displaying a user-selectable element in response to a user selection of a vertical axis of the second data visualization. The method includes receiving a user selection of the user-selectable element. The method includes generating an updated second data visualization having an updated vertical axis with data values that match the data values of the vertical axis of the first data visualization in response to the user selection of the user-selectable element. The method includes displaying the updated second data visualization.
[0104] In some implementations, a computing device includes a display, one or more processors, a memory, and one or more programs stored in the memory. The programs are configured for execution by the one or more processors. The one or more programs include instructions for performing any of the methods described herein.
[0105] In some implementations, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by a computing device having one or more processors and a memory, the one or more programs including instructions for performing any of the methods described herein.
[0106] Thus, a method, system, and graphical user interface are disclosed that enable users to collect, annotate, and structure narratives about ad-hoc collections of metrics.
[0107] It should be noted that the various implementations described above can be combined with any other implementations described herein. The features and advantages described herein are not all-inclusive, and many additional features and advantages will be apparent to those skilled in the art, especially upon consideration of the drawings, specification, and claims. Furthermore, it should be noted that the language used herein has been chosen primarily for readability and instructional purposes, and not to delineate or limit the subject matter of the present invention. [Brief explanation of the drawings]
[0108] For a better understanding of the aforementioned systems, methods, and graphical user interfaces, as well as additional systems, methods, and graphical user interfaces for providing data visualization analysis, reference should be made to the following description of implementations in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the figures: [Figure 1A] 1 illustrates a graphical user interface according to some implementations. [Figure 1B] 1 illustrates a graphical user interface according to some implementations. [Figure 2] FIG. 1 is a block diagram of a computing device according to some implementations. [Figure 3] FIG. 1 is a block diagram of a server system according to some implementations. [Figure 4A] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4B] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4C] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4D] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4E] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4F] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4G] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 4H] 1 provides one of a series of screenshots for managing scenes in a graphical user interface, according to some implementations. [Figure 5A] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5B] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5C] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5D] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5E] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5F]1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5G] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5H] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 5I] 1 provides one of a series of screenshots for managing cards in a graphical user interface, according to some implementations. [Figure 6A] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 6B] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 6C] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 6D] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 6E] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 6F] 1 provides one of a series of screenshots for selecting metrics to populate a visualization card, according to some implementations. [Figure 7A]1 provides one of a series of screenshots for interacting with a graphical user interface for specifying date / time granularity, according to some implementations. [Figure 7B] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying date / time granularity, according to some implementations. [Figure 7C] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying date / time granularity, according to some implementations. [Figure 7D] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying date / time granularity, according to some implementations. [Figure 8A] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a date / time range, according to some implementations. [Figure 8B] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a date / time range, according to some implementations. [Figure 8C] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a date / time range, according to some implementations. [Figure 8D] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a date / time range, according to some implementations. [Figure 9] We provide an algorithm that summarizes RemixTape's recommendation logic in several implementations. [Figure 10A] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10B]1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10C] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10D] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10E] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10F] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10G] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10H] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10I] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10J] 1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 10K]1 provides one of a series of screenshots for interacting with a graphical user interface for specifying a recommended action, according to some implementations. [Figure 11A] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11B] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11C] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11D] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11E] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11F] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11G] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11H] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11I] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 11J] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12A]1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12B] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12C] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12D] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12E] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12F] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12G] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12H] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12I] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12J] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 12K] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13A] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13B] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13C] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13D] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13E] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13F] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13G] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 13H] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14A] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14B] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14C] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14D] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14E]1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14F] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14G] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 14H] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15A] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15B] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15C] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15D] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15E] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15F] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15G] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 15H] 1 provides one of a series of screenshots for interacting with a visualization card, according to some implementations. [Figure 16A] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16B] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16C] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16D] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16E] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16F] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16G] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16H] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16I] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16J] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16K] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16L]1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16M] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 16N] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 17A] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 17B] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 17C] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 17D] 1 provides one of a series of screenshots for interacting with a graphical user interface, according to some implementations. [Figure 18A] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 18B] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 18C] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 18D]1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 18E] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 18F] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 19A] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 19B] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 19C] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 19D] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 19E] 1 provides a flowchart of a method for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. [Figure 20A] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 20B] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 20C]1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 20D] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 20E] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 21A] 1 provides a flowchart of a method for combining data visualizations on visualization cards in a time series metric presentation, according to some implementations. [Figure 21B] 1 provides a flowchart of a method for combining data visualizations on visualization cards in a time series metric presentation, according to some implementations. [Figure 21C] 1 provides a flowchart of a method for combining data visualizations on visualization cards in a time series metric presentation, according to some implementations. [Figure 22A] 1 provides a flowchart of a method for linking text and visualization in a time-series metric presentation, according to some implementations. [Figure 22B] 1 provides a flowchart of a method for linking text and visualization in a time-series metric presentation, according to some implementations. [Figure 22C] 1 provides a flowchart of a method for linking text and visualization in a time-series metric presentation, according to some implementations. [Figure 22D] 1 provides a flowchart of a method for linking text and visualization in a time-series metric presentation, according to some implementations. [Figure 23A] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23B]1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23C] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23D] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23E] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23F] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23G] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations. [Figure 23H] 1 provides a flowchart of a method for presenting time series metrics, according to some implementations.
[0109] Reference will now be made to implementations, examples of which are illustrated in the accompanying drawings. In the following 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. DETAILED DESCRIPTION OF THE INVENTION
[0110] 1A and 1B show a graphical user interface 100 for interactive presentation of metrics (e.g., time-series metrics) according to some implementations. In some implementations, the graphical user interface 100 is displayed on a computing device 200.
[0111] FIG. 1A shows that a user interface 100 includes a data schema and filter panel 102, a recommendations area 104, and a canvas area 106, according to some implementations.
[0112] In some implementations, the data schema and filter panel 102 displays one or more groups of identifiers 108 (e.g., labels) that correspond to one or more metrics 120. As used herein, a metric is a univariate, quantitative value that changes over time. In some instances, a metric 120 is a calculated data field having a value that changes over time. Stated differently, a metric 120 is a calculation (e.g., aggregation) based on measured data fields (e.g., quantitative or numeric data fields) over time. Typical aggregation operations include sum, average, count, distinct count, minimum, and maximum. In some implementations, a metric 120 is also referred to as a time-oriented data or time-series metric. For example, FIG. 1A shows that one of the metrics 120 is “average wind speed,” which is calculated by summing a group of numerical values (e.g., wind speed) over a period of time (e.g., 30 days, 12 months, or 3 years) and dividing it by the number of measurements. Other examples of metrics include an organization's key performance indicators (KPIs), such as revenue (e.g., over time), expenses (e.g., over time), profits (e.g., over time), and sales (e.g., over time).
[0113] In some implementations, each of the identifiers 108 is a user-selectable interface element (e.g., an icon, button, affordance, or input element) that, when selected (e.g., manually by a user), causes the computing device 200 to generate and display (e.g., in the recommendations area 104) a data visualization corresponding to the respective metric.
[0114] In some implementations, metrics 120 and their definitions and / or associated data may be obtained (e.g., derived) from data sources 240, cloud-based metric definition repositories (e.g., databases 340), unified shared metric layers provided by APIs 248, visualization worksheets 246, workbooks 244, or may be determined on the fly.
[0115] In the example of Figure 1A, metrics 120 are obtained from two sources: the National Oceanic and Atmospheric Administration (NOAA) for daily weather conditions in Seattle, Washington, and Redfin for monthly home sales in Seattle. Metrics 120 may be associated with different time periods and / or time granularities.
[0116] 1A shows that in some implementations, the data schema and filter panel 102 displays a date / time granularity filter 110 that allows a user to adjust the time granularity (e.g., date / time granularity) of a data visualization, as described in more detail in FIGS. 7A-7D.
[0117] 1A, the data schema and filter panel 102 displays a date / time range filter 112 that allows a user to adjust (e.g., edit or modify) the date / time range of a data visualization. In some implementations, the date / time range filter 112 allows a user to constrain the time span of a metric before adding it to a visualization card. In some implementations, the computing device 200 determines the overall date / time range of the metric 120 displayed in the data schema and filter panel 102 and populates the start date 114 and end date 116 accordingly. Further details of the date / time range filter 112 are described in FIGS. 8A-8D.
[0118] 1A shows that graphical user interface 100 includes a recommendations area 104 for displaying one or more data visualization recommendations. Details of the recommendations area and visualization recommendations are described in further detail in FIGS. 9 and 10A-10K.
[0119] In some implementations, the graphical user interface 100 includes a canvas area 106 (e.g., a canvas) for displaying one or more scenes 118. For example, FIG. 1A shows two scenes (e.g., a first scene 118-1 and a second scene 118-2) displayed on the canvas area 106. In some instances, the scenes 118 include one or more text cards 122. For example, the first scene 118-1 includes two text cards 122-1 and 122-2. In some instances, the scenes 118 include one or more visualization cards 124. For example, the first scene 118-1 includes two visualization cards 124-1 and 124-2. In some instances, the visualization cards 124 are blank cards that do not have any data visualization. In some instances, the visualization cards 124 include (e.g., display) data visualizations. For example, visualization card 124-1 displays data visualization 126.
[0120] In some implementations, the text cards and / or visualization cards within a scene are numbered consecutively according to their order of appearance in the scene. For example, FIG. 1A shows that the cards in a first scene 118-1 are numbered consecutively as "1.1, 1.2, 1.3, ...." The cards in a second scene 118-2 are numbered consecutively as "2.1, 2.2."
[0121] 1A shows that the graphical user interface includes an icon 128 (e.g., a button or a user-selectable interface element). In some implementations, user selection of the icon 128 causes the graphical user interface to display a scene summary 130, as shown in FIG. 1B. The scene summary 130 summarizes all scenes on the canvas. In some implementations, the scene summary 130 includes, for each scene 118 in the canvas area 106, a count of each of the visualization cards corresponding to the scene, and / or a count of each of the text cards corresponding to the scene, and / or a count of each of the unique (e.g., distinct) metrics corresponding to the scene, and / or a cumulative time span corresponding to the scene.
[0122] In the example of FIG. 1B, the scene summary 130 includes a respective box 132 (e.g., area) for each scene 118 appearing in the canvas area 106. The first box 132-1 corresponds to the summary for the first scene 118-1. The second box 132-2 corresponds to the summary for the second scene 118-2. Using the second box 132-2 as an example, there are four rows. The first row identifies the scene (i.e., "Scene 2"). The second row indicates that there are two cards in Scene 2. The number further breaks down by card type (i.e., one visualization card and one text card). The third row identifies the number of unique (e.g., distinct) metrics appearing in the scene. In this example, the second scene 118-2 has two metrics: a maximum temperature and a minimum temperature. The fourth row identifies the cumulative temporal span (e.g., time span) of the metric. In some implementations, the cumulative temporal span is represented as a graphical element 136-2 (e.g., a bar or rectangle) having a length proportional to the cumulative temporal span of the metric in the scene. Note that the graphical element 136-1 in the first box 132-1 is larger and represents a longer time span. In some implementations, the graphical element 132-2 is overlaid on a graphical element 134, such as a line. In some implementations, the graphical element has a length that represents the entire date / time range of the metric 120 displayed in the data schema and filter panel 102.
[0123] In some implementations, a user can reorder scenes on the canvas area by moving (e.g., via a drag-and-drop action) boxes 132 in scene summary 130. For example, a user can select a second box 132-2 (e.g., via a mouse click), hold down the mouse button, and move box 132-2 into position above the first box 132-1 to reorder the second scene as the first scene. A. Block Diagram
[0124] 2 is a block diagram illustrating a computing device 200 capable of displaying a graphical user interface 100 according to some implementations. Various examples of computing device 200 include desktop computers, laptop computers, tablet computers, and other computing devices having a display and a processor capable of executing a data visualization application 230. Computing device 200 typically includes one or more processing units (processors or cores) 202, one or more network or other communication interfaces 204, memory 206, and one or more communication buses 208 for interconnecting these components. In some implementations, communication bus 208 includes circuitry (sometimes referred to as a chipset) that interconnects and controls communications between system components.
[0125] The computing device 200 includes a user interface 210. The user interface 210 typically includes a display device 212. In some implementations, the computing device 200 includes input devices such as a keyboard, a mouse, and / or other input buttons 216. Alternatively or additionally, in some implementations, the display device 212 includes a touch-sensitive surface 214, in which case the display device 212 is a touch-sensitive display. In some implementations, the touch-sensitive surface 214 is configured to detect various swipe gestures (e.g., vertical and / or horizontal continuous gestures) and / or other gestures (e.g., single / double taps). In computing devices with a touch-sensitive display 214, a physical keyboard is optional (e.g., a soft keyboard may be displayed when keyboard input is required). The user interface 210 also includes an audio output device 218, such as a speaker or an audio output connection connected to a speaker, earphones, or headphones. Additionally, some computing devices 200 use a microphone 220 and voice recognition to complement or replace a keyboard. In some implementations, the computing device 200 includes an audio input device 220 (e.g., a microphone) for capturing audio (e.g., speech from a user).
[0126] In some implementations, memory 206 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices. In some implementations, memory 206 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 206 includes one or more storage devices located remotely from processor 202. Memory 206, or alternatively, a non-volatile memory device within memory 206, includes a non-transitory computer-readable storage medium. In some implementations, memory 206, or the computer-readable storage medium of memory 206, stores the following programs, modules, and data structures, or a subset or superset thereof: an operating system 222 that contains procedures for handling various basic system services and performing hardware-dependent tasks; a communications module 224 used to connect the computing device 200 to other computers and devices via one or more communications interfaces 204 (wired or wireless), such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc.; A web browser 226 (or other application capable of displaying web pages), which allows a user to communicate with a remote computer or device over a network; an audio input module 228 (e.g., a microphone module) that processes audio captured by the audio input device 220. The captured audio may be transmitted to a remote server (e.g., the server system 300) and / or processed by an application (e.g., the application 230 or the natural language processor 232) running on the computing device 200; An application 230 (e.g., RemixTape) that collects, annotates, and structures narratives about a collection of metrics 120. In some implementations, the application 230 includes: a graphical user interface 100 for users to construct visual graphics (e.g., text and graphs); a recommendation engine 232 for generating visualization recommendations based on the context (e.g., based on which metrics are currently shown in the canvas area 106); and a generation module 234 for automatically generating and displaying text cards 122, visualization cards 124, and / or visual graphics (also called "data visualizations" or "data viz") based on user input and / or recommendations from a recommendation engine 232; A natural language processor 236 that receives and parses natural language input provided by a user. In some implementations, the natural language input is provided by the user via a text card 122. In some implementations, the natural language processor 236 includes a pre-built library (e.g., SUTime) that recognizes and normalizes time expressions in user input. Details of SUTime are described in A.X. Chang and C.D. Manning, "SUTime: A library for recognizing and normalizing time expression," Proceedings of the International Conference on Language Resources and Evaluation (LREC), 2012, which is incorporated herein by reference in its entirety. Zero or more databases or data sources 240 (e.g., first data source 240-1) used by application 230. A data source may include one or more data fields and / or data values associated with the data fields. The data fields may include dimensional data fields (e.g., categorical data fields having categorical data values). The data fields may include measurement data fields (e.g., quantitative data fields). In some implementations, the data sources are stored as spreadsheet files, CSV files, XML files, flat files, or JSON files, or in relational databases. For example, a user may select one or more databases or data sources 240 (which may be stored on computing device 200 or remotely), select metrics from the data sources, and define visual graphics using the selected metrics. Data 242 includes: - zero or more workbooks 244 (e.g., a first workbook 244-1) (e.g., a Tableau workbook); Zero or more sheets 246 (e.g., first sheet 246-1) contained in a workbook. In some implementations, a sheet is a worksheet, a dashboard, or a story. In some implementations, a sheet specifies one or more metrics, metric definitions, and / or data associated with the metrics. In some implementations, a sheet specifies how the metrics are visually represented (e.g., text indicator + line chart vs. text indicator only). In some implementations, metrics appear as siblings in workbooks within the same folder in the server system 300 (e.g., Tableau Cloud / Server). Zero or more metrics 120, and their associated definitions and / or data, that are favorited or added to an ad-hoc user collection. Metrics may be associated with one or more workbooks, folders, and / or data sources, or may be determined on the fly. - Zero or more presentations 250 of time-series metrics (e.g., first presentation 250-1). In some implementations, presentation 250 includes one or more scenes (e.g., first scene 118-1) and content 252 associated with the scenes (e.g., content 252-1 corresponding to first scene 118-1). The content can include metrics used in the scenes, text cards, visualization cards, and / or the sequence in which the cards are presented in the scenes; and An API 248 that can be called from one or more applications (eg, web browser 226 and application 230) to perform one or more actions.
[0127] 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 sets 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; thus, various subsets of these modules may be combined or otherwise reconfigured in various implementations. In some implementations, memory 206 stores a subset of the above-identified modules and data structures. Additionally, memory 206 may store additional modules or data structures not described above. In some implementations, a subset of the programs, modules, and / or data stored in memory 206 is stored in and / or executed by server system 300.
[0128] 2 illustrates a computing device 200, which is intended 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.
[0129] 3 is a block diagram illustrating an exemplary server system 300 (e.g., a Tableau server) according to some implementations. In some implementations, the server system 300 is a data visualization server. The server system 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 system 300 includes a user interface 306 including a display 308 and one or more input devices 310, such as a keyboard and a mouse. In some implementations, the communication bus 312 includes circuitry (sometimes referred to as a chipset) that interconnects and controls communications between the system components.
[0130] 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 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.
[0131] In some implementations, memory 314, or the computer-readable storage medium of memory 314, stores the following programs, modules, and data structures, or a subset thereof: an operating system 316 that contains procedures for handling various basic system services and performing hardware-dependent tasks; a network communications module 318 used to connect the server 300 to other computers via one or more communications network interfaces 304 (wired or wireless) and / or one or more communications networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc.; A web server 320 (e.g., an HTTP server) that receives web requests from users and responds by providing response web pages or other resources; A web application 330 (e.g., the RemixTape web application) that can be downloaded and executed by the web browser 226 on the user's computing device 200. Generally, the web application 330 has the same functionality as the desktop application 230, but offers the flexibility of access from any device in any location with network connectivity and does not require installation and maintenance. In some implementations, the web application 330 includes various software modules for performing specific tasks, such as: - a user interface module 332 that provides a user interface for all aspects of the web application 330; A data retrieval module 334 that constructs and executes queries to retrieve data from one or more data sources 240, workbooks 244, and / or sheets 246. The data sources 240, workbooks 244, and / or sheets 246 may be stored locally on the server system 300 or in an external database 340. In some implementations, data from two or more data sources may be mixed, a recommendation engine 336 that generates visualization recommendations based on the context (e.g., based on which metrics are currently shown in the canvas area 106); and a generation module 338 that automatically generates and displays text cards 122, visualization cards 124, and / or visual graphics (also called "data visualizations" or "data viz") based on user input and / or recommendations from a recommendation engine 336; · Natural language processor 236.
[0132] In some implementations, the server system 300 includes a database 340. The database 340 stores: Zero or more data sources240; Zero or more workbooks 244, zero or more sheets 246, Zero or more metrics 120 and their associated definitions and / or data; Zero or more presentations 250, such as a first presentation 250-1. In some instances, the presentation 250-1 includes one or more scenes 118, such as a first scene 118-1, and content 252-1 associated with (e.g., corresponding to) the scenes; Visualization History 342. In some implementations, the database 340 stores a visualization history 342 for each user. The visualization history 342 may include information about each data visualization (e.g., visualization recommendations) that was generated (e.g., based on which metrics are currently shown in the canvas area 106). In some implementations, the visualization history 342 includes information about data visualizations (e.g., metrics) selected by the user for use in a scene. In some implementations, the database 350 stores other information, including other information used by the application 230, the web application 330, or other applications.
[0133] Database 340 may be separate from server system 300 or may be included in server system 300 (or both).
[0134] The database 340 may store data in many different formats and typically includes many separate tables, each with multiple data fields. Some data sources include a single table. Data fields include both raw data 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 a date field, calculating the time span between two date fields, calculating a running total of a quantitative field, calculating a growth rate, etc. In some cases, derived data fields are accessed by stored procedures or views within the database. In some implementations, definitions of derived data fields are stored separately from the data source 240.
[0135] In some implementations, the server system 300 includes an API 344. The API allows calls from one or more applications (e.g., applications on the computing device 200), translates the API calls into appropriate actions, and performs the one or more actions.
[0136] 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 sets 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; thus, various subsets of these modules may be combined or otherwise reconfigured in various implementations. In some implementations, memory 314 stores a subset of the above-identified modules and data structures. Additionally, memory 314 may store additional modules or data structures not described above.
[0137] While FIG. 3 illustrates a server system 300, it is intended as a functional illustration 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. Additionally, some of the programs, functions, procedures, or data described above with respect to the server system 300 may be stored or executed on the computing device 200. In some implementations, functionality 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 functionality is allocated across multiple physical devices within a server system. As used herein, reference to a “server” includes various groups, collections, or arrays of servers that provide the described functionality, and physical servers need not be physically co-located (e.g., individual physical devices may be distributed throughout the United States or around the world). B. Canvas Actions
[0138] According to some implementations of the present disclosure, the canvas area 106 (or canvas) is a reorderable container for scenes (e.g., scenes 118), which are containers for cards. The scenes 118 are reorderable containers for cards, which can be either text cards 122 or visualization cards 124.
[0139] In some implementations, the text card 122 includes one or more textual narrative statements (e.g., entered by a user). The statements may include one or more date / time references. A date / time reference is a phrase that references a temporal relationship. Examples of date / time references include "before August 2020" and "between November 21, 2020 and February 3, 2021."
[0140] In some implementations, visualization cards 124 (also referred to herein as "viz cards") are blank cards or cards containing data visualizations. Visualization cards 124 are used to display data visualizations within a scene.
[0141] In some implementations, the data visualization includes a line chart (e.g., a line plot) of one or more metrics 120 spanning some date / time range at a particular time granularity (e.g., yearly granularity, year-monthly granularity, or year-month-day granularity).
[0142] 4A-4H provide a series of screenshots for managing scenes in the graphical user interface 100, according to some implementations.
[0143] 4A-4C illustrate user interaction with the graphical user interface 100 for adding a scene, according to some implementations. Fig. 4A illustrates that the canvas area 106 is an empty (e.g., blank) canvas that does not contain any scenes. Fig. 4A illustrates user interaction 402 (e.g., a mouse click) with an "Add scene" option 404 to add a first scene to the canvas area.
[0144] 4B shows that in response to a user interaction, the graphical user interface 100 displays a first scene 118-1. The scene 118-1 is an empty scene. The graphical user interface 100 displays a first option 406 for adding a visualization card to the first scene 118-1. The graphical user interface 100 also displays a second option 408 for adding a text card to the first scene 118-1. The graphical user interface 100 displays an add scene option 404 in the canvas area 106 for adding a second scene to the canvas area 106. FIG. 4B shows a user interaction 410 (e.g., a mouse click) with the "Add Scene" option 404 to add the second scene to the canvas area.
[0145] 4C shows that in response to a user interaction, the graphical user interface 100 displays a first scene 118-1 and a second scene 118-2. In this example, each of the scenes 118-1 and 118-2 is an empty scene. The graphical user interface 100 also displays a first option 406 for adding a viz card and a second option 408 for adding a text card to each of the scenes 118-1 and 118-2.
[0146] 4D-4F illustrate user interaction with the graphical user interface 100 for reordering scenes, according to some implementations. FIG. 4D illustrates user interaction with the second scene 118-2. In this example, the user hovers the mouse cursor over the edge of the box 414 corresponding to the second scene 118-2. In response to the user interaction, the graphical user interface 100 displays an icon 412. FIG. 4E illustrates the user depressing the mouse button and dragging the box 414 (e.g., by depressing the mouse button) to (e.g., above) the first scene 118-1. FIG. 4F illustrates a partial view of the graphical user interface 100 after the scenes have been reordered. The two scenes do not yet have content, and the scene moved to the top has been relabeled "SCENE 1," so the switch is not visually apparent here. The present method improves the process of arranging scenes via drag-and-drop interaction.
[0147] 4G and 4H illustrate user interaction with the graphical user interface 100 to remove a scene, according to some implementations. Figure 4G illustrates user selection 416 of the "x" button (e.g., in the upper right corner) for scene 118-2. Figure 4H illustrates graphical user interface 100 removing scene 118-2 from the display in response to the user interaction.
[0148] 5A-5I provide a series of screenshots for managing cards in the graphical user interface 100, according to some implementations.
[0149] 5A-5D illustrate adding a card according to some implementations. FIG. 5A shows a partial view of the graphical user interface 100 including a first scene 118-1. FIG. 5A illustrates a user selection (422) of a first option 406 to add a viz card. FIG. 5B illustrates that in response to the user selection, the graphical user interface 100 displays a visualization card 124-3 within the first scene 118-1. In this example, the visualization card 124-3 is a blank (e.g., empty) card (without any content).
[0150] FIG. 5C illustrates a user selection (424) of the second option 408 to add a text card. FIG. 5D illustrates that in response to the user selection, the graphical user interface 100 displays a text card 122-3 within the first scene 118-1. According to some implementations, the text card 122 includes one or more text input elements 426 that allow a user to enter a textual exposition statement. In some instances, the statement includes one or more date / time references. FIG. 5D illustrates that in some implementations, the text card 122 and / or the viz card 124 includes an "x" icon 428 (e.g., a button or user-selectable interface element located in the upper right corner of the card). When the "x" icon is selected by the user, the card is removed from the scene.
[0151] 5E and 5F illustrate duplicating a visualization card according to some implementations. In some implementations, as shown in FIG. 5E, visualization card 124 includes a copy icon 430 (e.g., a button or user-selectable interface element) (e.g., located in the upper right corner of the card). When the copy icon is selected by a user, the visualization card (and, if present, the data visualization on the card) is duplicated as a separate card on the interface. FIG. 5E illustrates user selection (432) of copy icon 430. FIG. 5F illustrates that in response to the user selection, graphical user interface 100 displays visualization card 124-3 and, adjacent to it (e.g., to the right of it), a second visualization card 124-4 that is a duplicate of the original visualization card 124-3. FIG. 5F also shows that because an additional visualization card 124-4 exists before text card 122-3, graphical user interface 100 (e.g., application 230) renumbers the cards in first scene 118-1, making visualization card 124-4 “Card 1.2” and text card 122-3 “Card 1.3.”
[0152] 5G-5I illustrate rearranging cards according to some implementations. In some implementations, a user interacts with a card (e.g., a visualization card or a text card) by hovering the mouse pointer over the card's header or title (e.g., over "Card 1.1"). For example, FIG. 5G shows that in response to hovering the mouse over the header "Card 1.3," the graphical user interface 100 displays a move icon 434 (e.g., a button, indication, or user-selectable element) at or near the header. FIG. 5H shows that the user holds the mouse pointer (e.g., at icon 434) and drags card 122-3 to the left and over card 124-4. FIG. 5I shows that after rearranging, text card 122-3 appears between the first visualization card 124-3 and the second visualization card 124-4. The method improves the process of placing cards in a scene via drag-and-drop interaction. C. Manually specifying visualization cards
[0153] 6A-6F provide a series of screenshots for selecting (eg, manually selecting) metrics to populate a visualization card, according to some implementations.
[0154] In the example of Figure 6A, the graphical user interface 100 displays an indication (442) in the recommendations region 104 that visualization recommendations have been disabled. Figure 6A also shows a user selection (444) of the visualization card 124-3. In this example, the visualization card 124-3 is a blank visualization card (e.g., does not include any data visualization). In some implementations, the user selection (444) of the visualization card 124-3 indicates (e.g., identifies) to the application 230 that a data visualization is to be added to the visualization card 124-3.
[0155] FIG. 6B illustrates a user selection (446) of a first identifier 108-1 corresponding to a first metric (e.g., “Maximum Temperature”). For example, the user selection may include a mouse click (e.g., one click, single click, or double click) on the first identifier 108-1. FIG. 6B illustrates that in response to the user selection, the graphical user interface 100 displays a data visualization 448-1 (e.g., a data visualization recommendation) corresponding to the selected metric (e.g., “Maximum Temperature”) in the recommendations area 104. In this example, the data visualization 448-1 is a line chart showing the variation in maximum temperature from January 2020 to June 2021.
[0156] 6C illustrates user selection of multiple metrics according to some implementations. In this example, the user selects (e.g., by holding down the “shift key” and clicking) a first identifier 108-1 corresponding to a first metric 120-1 (e.g., “Maximum Temperature”) and a second identifier 108-2 corresponding to a second metric 120-2 (e.g., “Minimum Temperature”). In response to the user selection, FIG. 6C illustrates that the graphical user interface 100 displays a data visualization recommendation 448-2 including two lines, one corresponding to the variation in maximum temperature over time and the other corresponding to the variation in minimum temperature over time. The visual recommendation assists the user in the process of building a coherent narrative using metrics, reduces typing, and / or reduces user errors in selecting inappropriate metrics.
[0157] 6D shows a user selection (451) of an add icon 450-1 (e.g., a button or user-selectable interface element) to add visualization recommendation 448-2 to visualization card 124-3. FIG. 6E shows that in response to the user selection, graphical user interface 100 displays an updated visualization card 124-3 including a data visualization 452-1 that corresponds to visualization recommendation 448-2. The visual recommendations assist the user in the process of building a coherent narrative using metrics, reducing typing and / or reducing user errors in selecting inappropriate metrics.
[0158] 6E also shows a user selection (454) of a second move icon 450-2 (e.g., a button or user-selectable interface element) to add the underlying visualization recommendation 448-1 to the card. In this example, because the user has selected viz card 124-3 (e.g., the user has not selected another visualization card), computing device 200 (e.g., application 230) replaces data visualization 452-1 displayed on viz card 124-3 with data visualization 452-2 corresponding to visualization recommendation 448-1. This is shown in FIG. 6F.
[0159] 7A-7D provide a series of screenshots for interacting with a graphical user interface 100 for specifying date / time granularity, according to some implementations.
[0160] According to some implementations of the present disclosure, a user can specify a desired time granularity (e.g., day, month, or year). In some implementations, the user specification is received via the data schema and filter panel 102.
[0161] FIG. 7A illustrates a user selection (462) of a visualization card 124-3. FIG. 7B illustrates a user selection of an identifier 108-1 corresponding to a metric (e.g., "Maximum Temperature"). In response to the user selection of the identifier 108-1, the graphical user interface 100 displays a data visualization recommendation 448-3 corresponding to the selected metric (e.g., "Maximum Temperature") in the recommendation area 104. The data visualization recommendation 448-3 has a date / time granularity corresponding to a year-month-day granularity 464 (e.g., YMD granularity). As used herein, date / time granularity refers to the frequency (e.g., year, month, or day) at which metric values are provided. In the example of FIG. 7B, each data mark in the data visualization recommendation 448-3 represents a day (e.g., a date).
[0162] FIG. 7C illustrates a user selection (468) of a date / time granularity via the granularity filter 110. In this example, the user specifies the date-time granularity as “month” (or year-month). FIG. 7C also illustrates that, in response to the user selection, the graphical user interface 100 displays an updated data visualization recommendation 448-4 in the recommendations area 104 that corresponds to the selected metric (e.g., “Maximum temperature”) and has a year-month granularity 466 (e.g., YM granularity). Each data mark in the data visualization recommendation 448-4 represents a month. In some implementations, the computing device 200 (e.g., the application 230) generates the data visualization recommendation 448-4 by aggregating values of the metric (e.g., “Maximum Temperature”) to a monthly granularity. Compared to the first data visualization recommendation 448-3, the second data visualization recommendation 448-4 appears smoother (e.g., has less detail) because there are fewer data marks in the second data visualization recommendation 448-4 than in the first data visualization recommendation 448-3.
[0163] 7D shows a user selection (470) of the “year” granularity via the granularity filter 110. FIG. 7D also shows that, in response to the user selection, the graphical user interface 100 displays an updated data visualization recommendation 448-5 in the recommendation area 104 that corresponds to the selected metric (e.g., “Maximum Temperature”) and has a year granularity 472 (e.g., Y granularity). Each data mark in the third data visualization recommendation 448-5 represents a year. In some implementations, the computing device 200 (e.g., the application 230) generates the data visualization recommendation 448-5 by aggregating values of the metric (e.g., “Maximum Temperature”) by year.
[0164] 8A-8D provide a series of screenshots for interacting with a graphical user interface 100 for specifying a date / time range, according to some implementations.
[0165] According to some implementations of the present disclosure, a user can constrain the values of a selected metric to a particular time range. In some implementations, the user specification is received via the data schema and filter panel 102.
[0166] 8A illustrates a user selection of a first identifier 108-1 corresponding to a first metric, “Maximum Temperature.” In response to the user selection, the graphical user interface 100 displays in the recommendations region 104 a data visualization recommendation 448-3 corresponding to the selected metric, “Maximum Temperature.”
[0167] In some implementations, the graphical user interface 100 displays a date / time range filter 112 in the data schema and filter panel 102 that allows a user to specify (e.g., adjust, edit, or modify) a date / time range for a data visualization. For example, FIG. 8A shows that a metric 120 has a start date 114 of January 1, 2021 and an end date 116 of June 30, 2020. FIG. 8A also shows that a data visualization recommendation 448-3 includes a time series axis 482-1 (e.g., a time axis or x-axis) with a domain ranging from January 1, 2020 (i.e., 2020-1-1) to June 30, 2021 (i.e., 2021-6-6), which matches the start date 114 and end date 116 specified in the date-time range filter 112.
[0168] 8B and 8C show a user modification of the start date 114 from January 1, 2020 to June 1, 2020. FIG. 8C shows a user selection (484) of an "Apply" icon (e.g., button) to commit the changes. FIG. 8D shows that, in response to the user selection, the graphical user interface 100 displays an updated data visualization recommendation 448-6 corresponding to the selected metric (e.g., "Maximum Temperature") with a time series axis 482-2 having values ranging from June 1, 2020 to June 30, 2021. The data visualization recommendation 448-6 also includes a filter icon 486 (e.g., indicator) indicating that the time series axis is displaying a filtered range of date / time values.
[0169] According to some implementations of the present disclosure, when date / time filtering occurs, the computing device 200 retains the filtered data (e.g., filtered metric values) but re-renders the chart without the filtered date / time span. In other words, filtering adjusts the time domain of the displayed data visualization (e.g., a line chart). The filtered data is retained and not included in the displayed data visualization.
[0170] In some implementations, once date / time filtering is performed, the computing device 200 removes the filtered metric values and generates a data visualization that excludes the filtered data. D. Visualization Recommendations
[0171] According to some implementations of the present disclosure, RemixTape enhances the presentation authoring experience through context-sensitive chart recommendations.
[0172] In some implementations of the present disclosure, visualization recommendations in RemixTape are intended to guide users and help them identify "next steps." Recommendations in RemixTape fundamentally differ from conventional systems in that they focus on driving narrative sequencing during presentation authoring (as opposed to driving data coverage or analytical tasks / intent during open-ended data exploration). More specifically, RemixTape considers the active state of a presentation and recommends visualizations that allow the author / presenter to switch presentation context by drilling down into previously discussed metrics, zooming out for an overview when appropriate, or focusing on related metrics.
[0173] FIG. 9 provides an algorithm summarizing RemixTape's recommendation logic, according to some implementations.
[0174] In some implementations, RemixTape provides roughly two types of chart recommendations: new metric recommendations and sequential recommendations. 1. New metric recommendations
[0175] When dealing with new or large datasets, finding potentially interesting metrics to include in a presentation can be challenging. The disclosed implementations improve the user experience by helping users identify new metrics to introduce into a presentation. To assist authors in such scenarios, RemixTape recommends metrics for starting a new scene (Figure 9, lines 6-8) and for introducing new metrics within a scene (Figure 9, lines 15-16 and 21-22). a. Recommend a card for an empty scene.
[0176] When recommending cards for a scene in an empty canvas, RemixTape iterates through all available metrics and suggests metrics that show potentially interesting data trends over time. In some implementations, metrics that show strong variation in trend over time are recommended as cards for starting scenes. In some implementations, to identify metrics, RemixTape calculates parameters that measure the variability of the values of each metric. In some implementations, the parameters include a dispersion parameter or statistical dispersion, such as the mean (average) of the values, the range of the values, the dispersion of the values, the deviation of the values (e.g., standard deviation, mean deviation, or quartile deviation), or the coefficient of variation (e.g., coefficient of dispersion).
[0177] In some implementations, RemixTape calculates a coefficient of variation (e.g., a coefficient of dispersion or relative standard deviation) for the values of the metric. The coefficient of variation is the ratio of the standard deviation to the mean, thus normalizing the metric.
[0178] In some implementations, based on the calculated parameters, RemixTape recommends metrics that have high variability.
[0179] In some implementations, if other scenes are already present on the canvas, RemixTape takes the existing content into account and deprioritizes metrics covered in previous scenes (e.g., recommendations focus on unused metrics with the most variable time trends). b. Recommend cards for pre-populated scenes.
[0180] According to some implementations of the present disclosure, when a new visualization card is added to a pre-populated scene, RemixTape recommends new metrics that the creator may consider switching focus on. To generate these recommendations, RemixTape iterates through all metrics not previously used in the scene and identifies those with the most similar trends to the previous visualization card. In some implementations, to detect similarity, RemixTape calculates the Pearson correlation coefficient (r) between the value of the metric and the data displayed in the previous visualization card and recommends the metric with the highest |r| (e.g., the metric with the strongest correlation or inverse correlation). 2. Sequential recommended
[0181] According to some implementations of the present disclosure, in addition to helping creators identify new metrics to introduce into their presentations, RemixTape also recommends charts (e.g., data visualizations, line graphs, or line charts) that can help creators talk about metrics step-by-step using a series of cards. More specifically, when a viz card is added to a non-empty scene, RemixTape examines the scene context to generate two types of recommendations, including drill-down recommendations and overview recommendations. a. Drill-down recommendations
[0182] To help creators focus on potentially interesting periods within their data, RemixTape recommends time filters that can be applied to metrics within the preceding visualization card, drilling down to notable peaks and valleys within the data.
[0183] In some implementations, to identify peaks and valleys, RemixTape employs a robust peak detection algorithm that uses moving averages to detect peaks / valleys, as described in "Robust peak detection algorithm using z-scores," available at https: / / stackoverflow.com / questions / 22583391 / peak-signaldetection-in-realtime-timeseries-data / 22640362#22640362,2014, which is incorporated herein by reference in its entirety. Specifically, the algorithm uses three input parameters: (1) lag, which controls the size of the moving window; (2) threshold (λ), which determines the number of standard deviations (i.e., z-score); and (3) influence, which controls how much influence a new data point has on the moving average and standard deviation. At each time step t, the moving average μ t and standard deviation σ t is calculated using the data in a moving window. The data points are those whose values are μ t +λ*σ tA data point is considered a peak if its value is greater than μ t -λ*σ t If it is less than this, it is considered a valley.
[0184] If the input data source contains one or more categorical attributes, the system also recommends breaking down metrics by category (e.g., moving from a single line chart to a multi-series line chart). b. Summary Recommendations.
[0185] The recommendations described above suggest that authors drill down into specific metrics (the classic overview->detail narration pattern). However, in the flow of creating a presentation, authors may create scenes with charts that display only a subset of the time period covered by the dataset. To make authors aware of potential lack of context in their presentation (e.g., by suggesting a transition from detail to overview), RemixTape also recommends overview charts that span the entire time period of the dataset.
[0186] During sequential recommendations, the system checks all existing cards in the scene to avoid duplicates and ensure that the recommended card does not already exist in the scene. 3. Screenshots
[0187] 10A-10L provide a series of screenshots for interacting with a graphical user interface for specifying recommended actions, according to some implementations.
[0188] 10A and 10B show partial views of a graphical user interface 100 according to some implementations. The graphical user interface 100 displays recommendation buttons 502 (e.g., toggle buttons, icons, user-selectable interface elements) in a recommendation region 104. The graphical user interface 100 displays an empty scene 118-3 with a blank visualization card 124-5 in a canvas region 106.
[0189] 10A shows that the recommendations button 502 is deactivated (e.g., toggled off), meaning that the recommendations feature is disabled. Thus, the application 230 does not provide visualization (or metric) recommendations. In some implementations, when the recommendations feature is disabled, only manually specified visualization cards can be added to the canvas area 106 (e.g., using the steps described in FIGS. 6A-6F).
[0190] 10A and 10B indicates user activation (504) of the recommendation button 502. The visual distinction of the recommendation button 502 in its activated or deactivated state provides visual feedback to the user, improving device usability and making the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0191] FIG. 10B also shows that the graphical user interface 100 displays a prompt 506 to select a visualization card to view recommendations.
[0192] In some implementations, recommendations are context-based, meaning they have different levels of scope. For example, recommendations for a partially completed scene are different from recommendations for an empty canvas, or for a new scene after several completed scenes. In some implementations, recommendations become more and more specific as the user / creator adds more content to the canvas. In some implementations, manual selection of metrics overrides recommendations.
[0193] FIG. 10C shows a user selection (508) of a blank visualization card.
[0194] 10D shows that in response to the user selection, graphical user interface 100 displays (e.g., automatically and without user intervention) data visualization recommendations 448-7, 448-8, and 448-9 in recommendation area 104. Each of the visualization recommendations corresponds to a respective metric. For example, first visualization recommendation 448-7 corresponds to the metric "911 Calls." Second visualization recommendation 448-8 corresponds to the metric "Average Sale to List," and third visualization recommendation 448-9 corresponds to the metric "Average Wind Speed." In this example, because the canvas is empty and card 124-5 is the first visualization card to be added to initial scene 118-3, computing device 200 (e.g., application 230) may suggest these metrics because they have higher variability compared to other metrics in the data source.
[0195] 10E illustrates a user selection (510) of an add icon 450-7 (e.g., a button or user-selectable interface element) to add a first visualization recommendation 448-7 to the visualization card 124-5. FIG. 10F illustrates that, in response to the user selection, the computing device 200 updates the display of the visualization card 124-5 to include a data visualization 452-3 that corresponds to the first visualization recommendation 448-7.
[0196] 10G shows that the graphical user interface 100 displays a second visualization card 124-6 (e.g., a blank card) adjacent to the visualization card 124-5. For example, in some implementations, the visualization card 124-6 is displayed in response to a user selecting the first option 406 (e.g., FIG. 10E) to add a visualization card.
[0197] FIG. 10G shows that in response to displaying the second visualization card 124-6 (e.g., in parallel or simultaneously therewith), the graphical user interface 100 displays updated visualization recommendations (e.g., visualization recommendations 448-10, 448-11, and 448-12) in the recommendations area 104.
[0198] In some implementations, as shown in FIG. 10G, the visualization recommendations are grouped into one or more categories, including a first category 512 (e.g., “Break metric down by dimensions”). In the example of FIG. 10G, the computing device 200 determines that the metric (e.g., “911 Calls”) corresponding to the previous visualization card 124-5 in the scene 118-3 corresponds to a categorical data field (e.g., a dimensional data field). In some implementations, in accordance with this determination, the computing device 200 recommends breaking down the metric (e.g., “911 Calls”) by data values (e.g., “Central,” “North,” and “South”) of the categorical data field. Thus, the computing device 200 provides a data visualization recommendation 448-10 that includes a plurality of lines, each corresponding to a respective data value of the categorical data field “911 Calls.”
[0199] In some implementations, as shown in FIG. 10G, the visualization recommendations are grouped into one or more categories, including a second category 514 (e.g., "Focus on a narrower time span"). In the example of FIG. 10G, the first data visualization 452-3 has a time span from January 1, 2020 to June 30, 2021. The computing device 200 determines (e.g., using the peak detection algorithm described above) that the data visualization 452-3 has a peak around January 13, 2021, and generates visualization recommendation 448-11 in accordance with this determination, having a narrower time span from January 7, 2021 to January 19, 2021.
[0200] In some implementations, as shown in FIG. 10G, the visualization recommendations are grouped into one or more categories, including a third category 516 (e.g., "Add a new metric"). For example, in FIG. 10G, the computing device 200 determines that the first data visualization 452-3 in the previous visualization card 124-5 corresponds to the metric "911 Calls" and provides a visualization recommendation 448-12 that corresponds to a different metric, "Maximum Temperature."
[0201] In some implementations, as shown in FIG. 10G, each recommended category includes an information icon 517 (e.g., an “i” icon or information icon) that, when hovered over (e.g., via a mouse hover action), explains how the corresponding recommended category is generated.
[0202] In some implementations, each of categories 512, 514, and 516 includes two or more visualization recommendations. In some implementations, the visualization recommendations are displayed as a scrollable list. FIG. 10H illustrates a user interaction with a first scroll bar 518 (e.g., a vertical scroll bar) to scroll the visualization recommendations in the first category 512 in an up / down direction 522. FIG. 10H illustrates another user interaction with a second scroll bar 520 (e.g., a vertical scroll bar) to scroll the visualization recommendations in the third category 516 in an up / down direction 524. FIG. 10I illustrates the graphical user interface 100 displaying another visualization recommendation 448-13 corresponding to the metric “Hospitalization Rate” in response to the interaction with scroll bar 520.
[0203] FIG. 10J illustrates a user selection (526) of an add icon 450-10 (eg, a button or user-selectable interface element) to add a visualization recommendation 448-10 to the second visualization card 124-6.
[0204] 10K shows that in response to the user selection, the computing device 200 updates the display of the second visualization card 124-6 to include the data visualization 452-4 corresponding to the visualization recommendation 448-10. FIG. 10K shows that the graphical user interface 100 displays a third visualization card 124-7 (e.g., a blank card) adjacent to the visualization card 124-6. For example, in some implementations, the visualization card 124-7 is displayed in response to a user selection of the first option 406 (e.g., FIG. 10J) to add a visualization card.
[0205] FIG. 10K also shows that in response to displaying blank visualization card 124-7 and in accordance with the content (e.g., data visualizations 452-3 and 452-4) already in scene 118-3 (and in canvas area 106), computing device 200 generates and displays updated visualization recommendations 448-14, 448-15, and 448-16 in recommendation area 104. E. Configuring a Visualization Card
[0206] RemixTape provides several ways for users to configure a data visualization after it has been added to a visualization card 124. These include (1) transforming the x- or y-axis of the data visualization, (2) filtering the date / time range of the data visualization, (3) merging and overlaying adjacent visualization cards, and (4) annotating and / or obfuscate visualization cards, which are described in further detail below. 1. Axis conversion
[0207] According to some implementations of the present disclosure, clicking on any axis in a visualization card 124 reveals controls for truncating and relativizing the chart's value domain. The domain of the vertical axis can be toggled between the minimum and maximum values in the card, or between zero and the maximum. The vertical axis can also be indexed to a percentage scale, relative to the first value appearing in the card. A relative transformation can also be applied to the horizontal axis from absolute chronological dates to relative dates starting from the first date appearing in the card.
[0208] 11A-11J provide a series of screenshots for interacting with a visualization card 124 that includes a data visualization 530, according to some implementations. The visualization card 124 is included in a scene 118 within the graphical user interface 100.
[0209] 11A shows a visualization card 124 displaying a data visualization 530. In this example, the data visualization 530 is a line chart showing the monthly change in inventory from January 2020 to June 2021. FIG. 11B shows a user interaction (532) (e.g., a mouse click) on the y-axis (i.e., vertical axis) of the data visualization 530. According to some implementations, user selection of a viz card (e.g., by clicking on the x-axis or y-axis of the data visualization) triggers an axis action.
[0210] 11C shows that in response to a user interaction, the visualization card 124 displays a y-axis group 534 of icons (e.g., buttons or user-selectable interface elements) on the y-axis (e.g., to convert the vertical scale). In some implementations, the y-axis group 534 of icons includes a first y-axis icon 534-1 that, when selected, toggles between a y-scale starting from zero (e.g., a vertical scale) and a y-scale starting from a minimum value. In some implementations, the y-axis group 534 of icons includes a second y-axis icon 534-2 that, when selected, toggles between an absolute y-scale (e.g., a vertical scale with absolute values) and a y-scale relative to the earliest y value (e.g., the first y value). In some implementations, the y-axis group of icons 534 includes a third y-axis icon 534-3 (e.g., a synchronization icon) that, when selected, synchronizes the vertical scale of the data visualization 530 with the vertical scale of another data visualization displayed adjacent to (e.g., to the left or right of) the visualization card 124.
[0211] Presenting the user with a group of icons 534 assists the user in the process of transforming the value domain of the data visualization. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0212] FIG. 11C also shows that in response to user interaction, the visualization card 124 displays a group 536 of icons (e.g., buttons or user-selectable interface elements) on the x-axis (e.g., the horizontal or time series axis).
[0213] In some implementations, the group of icons 536 includes a left icon 536-1 that, when selected, toggles between an absolute time scale (e.g., with absolute dates) and a relative time scale in which the x-axis values are days (e.g., Day 1, Day 2, ...), months (e.g., Month 1, Month 2, ...), or years (e.g., Year 1, Year 2, ...). In some implementations, the group of icons 536 includes a right icon 536-2 (e.g., a synchronization icon) that, when selected, synchronizes the horizontal scale (e.g., time scale or axis) of the data visualization 530 with the horizontal scale of another data visualization displayed adjacent to (e.g., to the left or right of) the visualization card 124.
[0214] Presenting a group of icons (e.g., icon 536) to the user assists the user in the process of transforming value domains of the data visualization. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user achieve intended results by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0215] In some implementations, the y-axis icon group 534 and the x-axis icon group 536 are displayed simultaneously in response to a user selection of an axis (e.g., the x-axis or the y-axis). In some implementations, the x-axis icon group 536 is displayed in response to a user selection of the x-axis, and the y-axis group 534 is not displayed. In some implementations, the y-axis icon group 534 is displayed in response to a user selection of the y-axis, and the x-axis group 536 is not displayed.
[0216] Figure 11D shows a user selection (538) of the first icon 534-1 in the y-axis group. Figure 11E shows that in response to the user selection, graphical user interface 100 displays an updated data visualization 540 in visualization card 124 with the y-axis starting at a minimum y-value of approximately 2200 (contrast with Figure 11A).
[0217] In some implementations, a user selection of the x-axis or y-axis of the updated data visualization 540 displays a y-axis group of icons 534 and / or an x-axis group of icons 536. The user can select the first icon 534-1 in the y-axis group to return to the data visualization 530 (e.g., with the vertical scale starting from zero).
[0218] Figure 11F shows user selection (542) of second icon 534-2 in the y-axis group. Figure 11G shows that in response to the user selection, graphical user interface 100 displays an updated data visualization 544 in visualization card 124 with a relative y-scale (546) relative to the earliest y-value (e.g., the first y-value). For example, original data visualization 530 in Figure 11A shows that the earliest y-value (e.g., the first y-value) is approximately 3200. In the relativized scale, this earliest y-value becomes 100% (or 1.0), and other y-values in data visualization 530 are relativized to the initial value of approximately 3200 (e.g., a value of approximately 6400 becomes 200% or 2.0, and a value of approximately 1600 becomes 50% or 0.5).
[0219] In some implementations, in response to a user selection of the third y-axis icon 534-3, the computing device 200 synchronizes the y-axis of the first visualization card (e.g., the right viz card or Card 1.2) with the y-axis of the second visualization card (e.g., the left viz card or Card 1.1). Using consistent value domains across charts can enhance sequential narration and aid comprehension.
[0220] In some implementations, in response to a user selection of the third y-axis icon 534-3, the computing device 200 synchronizes the y-axis of the first visualization card (e.g., the left viz card or Card 1.1) with the y-axis of the second visualization card (e.g., the right viz card or Card 1.2). Using consistent value domains across charts can enhance sequential narration and aid comprehension.
[0221] In some implementations, when the y-axis of a first visualization card is synchronized with the y-axis of a second visualization card, the axis domains are equivalent in absolute units (e.g., not relative units).
[0222] Continuing with reference to FIG. 11H, FIG. 11H illustrates a user selection (548) of an axis (e.g., the x-axis) of data visualization 544. FIG. 11H illustrates that in response to the user selection, computing device 200 displays a y-axis group of icons 534 adjacent to the vertical axis. Computing device 200 displays an x-axis group of icons 536 adjacent to the horizontal axis. FIG. 11I illustrates a user selection (550) of a first icon 536-1 in the x-axis group. FIG. 11J illustrates that in response to the user selection, graphical user interface 100 displays an updated data visualization 552 with the x-axis on a relative time scale. For example, the first x value shown in data visualization 544 (e.g., January 1, 2020) corresponds to day 0 in data visualization 552, and the date January 31, 2020 in data visualization 544 corresponds to day 30 in data visualization 552.
[0223] In some implementations, in response to a user selection of the second x-axis icon 536-2, the computing device 200 synchronizes the x-axis of the first visualization card (e.g., the right viz card or Card 1.2) with the x-axis of the second visualization card (e.g., the left viz card or Card 1.1) that immediately precedes the first visualization card. Using consistent value domains across charts can enhance sequential narration and aid comprehension.
[0224] In some implementations, in response to a user selection of the second x-axis icon 536-2, the computing device 200 synchronizes the x-axis of the first visualization card (e.g., the left viz card or Card 1.1) with the x-axis of the second visualization card (e.g., the right viz card or Card 1.2) that immediately follows the first visualization card. Using consistent value domains across charts can enhance sequential narration and aid comprehension.
[0225] In some implementations, when the x-axis of a first visualization card is synchronized with the x-axis of a second visualization card, the axis domains are equivalent in absolute units (e.g., not relative units). 2. Filtering date-time ranges on visualization cards (e.g., keeping and splitting)
[0226] According to some implementations of the present disclosure, the date / time range filter 112 in the data schema and filter panel 102 allows a user to constrain the time span of a metric before adding it to a visualization card, but can also change this date / time span at any time, even after the visualization card is populated with one or more metrics. Thus, the disclosed implementations provide users with greater flexibility for building presentations using data visualizations with variable date / time spans.
[0227] For example, in some implementations, clicking the top margin of a visualization card reveals controls for splitting the time domain of the chart, including keeping data points either before or after the split point, or moving data points after the split point to a new visualization card. Similarly, dragging horizontally within the plane of the chart reveals controls for keeping only the selected time span, or excluding the selected span and keeping the spans before and after it on two visualization cards.
[0228] In some implementations, after changing the time domain of a visualization card (e.g., as described above), the modified visualization card is annotated with one or more icons to indicate that time filtering has occurred. In some implementations, a filtered visualization card (e.g., a filtered data visualization) may be restored to the state it was in when it was originally added to the canvas.
[0229] 12A-12J provide a series of screenshots for interacting with visualization cards according to some implementations.
[0230] FIG. 12A illustrates a visualization card 124 displayed on the graphical user interface 100 as part of a scene 118. FIG. 12A shows that the visualization card 124 includes (e.g., displays) a data visualization 562 (e.g., a line chart). FIG. 12A illustrates a user interaction (564) with a portion of the visualization card 124 (e.g., a chart or data visualization 562). In this example, the user clicks on the top (e.g., an area or white space) of the data visualization 562. FIG. 12A illustrates that in some implementations, in response to the user interaction, the computing device 200 generates and displays a dividing line (e.g., a vertical line) 566 that extends vertically from the point of the mouse click to the x-axis (e.g., a timeline or time axis). In the example of FIG. 12A, the dividing line 566 intersects the x-axis of the data visualization 562 at point 568.
[0231] 12B shows that, in response to a user interaction, the computing device 200 displays (e.g., simultaneously or in parallel) a group 570 of action icons (e.g., buttons or user-selectable interface elements) on the visualization card 124 adjacent to the point of the mouse click. In some implementations, the group of action icons 570 includes a first action icon 570-1 that, when selected, holds (e.g., on the visualization card 124) a data point of the data visualization 562 before (e.g., to the left of) the division point 568 (or the division line 566). In some implementations, the group of action icons 570 includes a second action icon 570-2 that, when selected, holds (e.g., on the visualization card 124) a data point of the data visualization 562 after (e.g., to the right of) the division point 568 (or the division line 566). In some implementations, the group of icons 570 includes a third action icon 570-3 that, when selected, (i) keeps the data points of the data visualization 562 before the split point 568 on the same visualization card and (ii) displays the data points of the data visualization 562 after the split point 568 on a different visualization card (e.g., different from visualization card 124). In some implementations, the group of action icons 570 includes a fourth action icon 570-4 (e.g., an open eye on the left and a crossed-out eye on the right of the border) that, when selected, partially obscures the data visualization (e.g., blurs everything to the right of the vertical border of the cursor in the viz card). In some implementations, the group of action icons 570 includes a fifth action icon 570-5 that, when selected, restores the filtered visualization card to the state it was in when it was first added to the canvas.
[0232] Presenting the user with groups of icons 570 assists the user in the process of retaining or dividing the data visualizations on the visualization card. Providing visual feedback to the user (e.g., in response to user selection of an icon) improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user achieve the intended results by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0233] Figure 12C shows a user selection (572) of first action icon 570-1. Figure 12D shows that in response to the user selection, graphical user interface 100 displays an updated visualization 574 (e.g., a filtered visualization) in visualization card 124 with an x-axis domain corresponding to before division point 568 (e.g., before August 2020). Figure 12D also shows visualization card 124 displaying a filter icon 576 to indicate that temporal filtering has occurred.
[0234] Figure 12E shows a user selection (578) of the fifth action icon 570-5. Figure 12F shows that in response to the user selection, the computing device 200 restores the filtered visualization 574 of Figure 12F to the original visualization 562, which was the original state of the visualization when it was first added to the visualization card 124.
[0235] 12G shows another user interaction with visualization 562. In this example, the user selects (580) second action icon 570-2. FIG. 12H shows that in response to the user selection, graphical user interface 100 displays, in visualization card 124, an updated visualization 582 (e.g., a filtered visualization) that corresponds to the portion of visualization 562 after division point 568 (e.g., to the right of division point 568 or division line 566).
[0236] 12I, 12J, and 12K illustrate user interaction with third action icon 570-3. FIG. 12I illustrates visualization card 124-1 including data visualization 592. Data visualization 592 has dividing line 594 and dividing point 596. FIG. 12I illustrates user selection (597) of third action icon 570-3. FIG. 12J illustrates that in response to the user selection, graphical user interface 100 displays updated visualization 598 on visualization card 124-1 that corresponds to the portion of visualization 592 before dividing point 596 (or dividing line 594). 12K shows that in response to the user selection, the graphical user interface 100 displays the updated data visualization on another visualization card 124-2 adjacent to (e.g., to the right of) the visualization card 124-1 (e.g., simultaneously with displaying the updated data visualization 598). In other words, the computing device 200 splits the visualization 592 that was originally on the viz card 124-1 into two visualizations 598 and 599 on the two adjacent cards 124-1 and 124-2.
[0237] 13A-13H provide a series of screenshots for interacting with visualization cards, according to some implementations.
[0238] FIG. 13A shows a visualization card 124 displayed on the graphical user interface 100 as part of a scene 118. FIG. 13B shows a user interaction with the data visualization 602 of FIG. 13A. In this example, a user brushes the data visualization 602 by holding and dragging (e.g., horizontally) a mouse over the data visualization 602. FIG. 13B shows that a brushed area 604 (e.g., a region or area) is designated (e.g., highlighted or selected) according to the user interaction. The brushed area 604 designates (e.g., includes) a first date / time value 608 (e.g., defined by the intersection of the brushed area 604 with the x-axis of the data visualization 602) and designates (e.g., includes) a second date / time value 610 (e.g., defined by the intersection of the brushed area 604 with the x-axis of the data visualization 602).
[0239] 13B shows that in some implementations, in response to a user interaction, the computing device 200 displays a group 606 of brushing icons (e.g., buttons or user-selectable interface elements) on the visualization card 124. In some implementations, the group of brushing icons 606 includes a first brushing icon 606-1 that, when selected, holds (e.g., retains) a portion of the data visualization 602 within the brushed area. In some implementations, the group of brushing icons 606 includes a second brushing icon 606-2 that, when selected, holds (e.g., retains) a portion of the data visualization 602 that is outside the brushed area 602.
[0240] Presenting the user with a group of brushing icons 606 assists the user in the process of retaining or dividing the data visualization on the visualization card. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0241] Figure 13C shows a user selection (612) of the first brushing icon 606-1. Figure 13D shows that in response to the user selection, the graphical user interface 100 updates the display of the visualization card 124 to include an updated (e.g., filtered) data visualization 614 that corresponds to the portion of the data visualization 604 within the brushed area 604.
[0242] FIG. 13E illustrates another user interaction with the visualization card 124. In this example, the user clicks on a portion of the data visualization 614. FIG. 13E illustrates that, in response to the user interaction, the graphical user interface 100 displays a group of action icons 570 (e.g., icons 570-1, 570-2, 570-3, 570-4, and 570-5), which have already been described in FIG. 12B and will not be repeated for brevity. FIG. 13E illustrates a user selection (616) of a fifth action icon 570-5. FIG. 13F illustrates that, in response to the user selection, the data visualization displayed on the visualization card 124 reverts (e.g., restores) to the initial data visualization 602.
[0243] Figure 13F also illustrates user interaction (624) with data visualization 602. In this example, the user brushes data visualization 602 by holding and dragging (e.g., horizontally) the mouse over data visualization 602. Figure 13F illustrates brushed area 618 designated according to the user interaction. Brushed area 618 intersects the x-axis of data visualization 602 at a first date / time value 620 and a second date / time value 622. Figure 13F also illustrates user selection of icon 606-2.
[0244] 13G and 13H show that, in response to the user selection, graphical user interface 100 updates the display of visualization card 124 to include an updated (e.g., filtered) data visualization 630 that corresponds to the left outer portion 626 of data visualization 602 as shown in FIG. 13F. Graphical user interface 100 displays an additional visualization card 632 adjacent to visualization card 124. Graphical user interface 100 displays a data visualization 634 in this additional visualization card 632 that corresponds to the right outer portion 628 of data visualization 602 as shown in FIG. 13F. 3. Merge and overlay adjacent visualization cards
[0245] According to some implementations of the present disclosure, RemixTape provides an option to overlap (eg, merge) pairs of adjacent visualization cards when they are compatible.
[0246] While juxtaposing viz cards (e.g., displaying them side by side) is one approach to comparing metrics, another approach is combining multiple metrics into a multi-series line chart in a single viz card. Leveraging the idea of semantic snapping, when two chart cards are juxtaposed, RemixTape presents the option to merge them if the charts share comparable value domains and time ranges.
[0247] 14A-14H provide a series of screenshots for interacting with visualization cards, according to some implementations.
[0248] FIG. 14A shows a partial view of the graphical user interface 100 including a scene 118-1. The scene 118-1 includes a first visualization card 124-1 having a first data visualization 642. In this example, the first data visualization 642 is a chart of maximum temperature over time. The first data visualization 642 has an x-value (e.g., a time value) ranging from approximately January 2020 to June 2021. The first data visualization 642 has a y-value (e.g., a vertical value or maximum temperature value) ranging from approximately 0°C to approximately 40°C. The scene 118-1 includes a second visualization card 124-2 adjacent to the first visualization. The second visualization card 124-2 includes a second data visualization 644 showing precipitation over time. Data visualization 644 has x values ranging from about January 2020 to about June 2021. Data visualization 644 has y values ranging from about 0 mm to about 50 mm.
[0249] 14A , the first data visualization 642 has an x-domain that substantially overlaps with the x-domain of the second data visualization 644. The first data visualization 642 has a y-value (e.g., maximum temperature) that substantially overlaps with the y-value of the second data visualization 644. In some implementations, following a determination that two adjacent viz cards have overlapping x-domains, and / or overlapping y-domains, and / or y-domains that span the same order of magnitude, the graphical user interface 100 displays a merge icon 646 (e.g., a button, an affordance, or a selectable interface element) that, when selected by a user, overlays (e.g., merges or combines) the data visualizations on the adjacent viz cards onto one visualization card.
[0250] Figure 14A shows a user selection (648) of merge icon 646. Figure 14B shows that in response to the user selection, graphical user interface 100 displays a data visualization 648 in visualization card 124-1 that includes two lines corresponding to maximum temperature over time and precipitation over time. Visualization card 124-1 displays a legend 650 that defines features in data visualization 648. In some implementations, the two graphics are distinguished by color or other visual characteristics.
[0251] 14C-14H illustrate user interaction with a data visualization in which y-values do not overlap. According to some implementations of the present disclosure, when one or more sets of values represent different value domains or units of measurement than those already displayed in the chart, RemixTape prevents authors from creating dual y-axis charts. Instead, they choose to create an indexed line chart. This is because a dual-axis chart may result in incorrect value determination.
[0252] 14C shows a partial view of graphical user interface 100 including scene 118-2. Scene 118-2 includes a first visualization card 124-3 having a first data visualization 654. Scene 118-2 includes a second visualization card 124-4 adjacent to visualization card 124-4. Second visualization card 124-4 includes a second data visualization 656.
[0253] In the example of FIG. 14C , data visualization 654 is a graph of maximum temperature over time with y-values (maximum temperature) ranging from approximately 5° C. to approximately 25° C. Data visualization 656 is a graph of inventory over time with y-values (maximum temperature) ranging from approximately 2000 to 5000. The y-values of the first data visualization 654 do not overlap with the y-values of the second data visualization 656.
[0254] FIG. 14D illustrates user interaction with the y-axis of the second data visualization 656. For example, the user interaction may be a mouse click near the y-axis (e.g., vertical axis). In some implementations, in response to the user interaction, the computing device 200 displays a group of y-axis icons 534 and / or a group of x-axis icons 536 on the visualization card 124-4. The y-axis icons 534 and x-axis icons 536 were previously described with respect to FIG. 11C and will not be repeated for brevity. FIG. 14D illustrates user selection (658) of the second y-axis icon 534-2. FIG. 14E illustrates that in response to the user selection, the graphical user interface 100 displays an updated data visualization 660 having a relative y-scale relative to the earliest y-value (e.g., the first y-value in the temporal sequence) of the second data visualization 656. FIG. 14F shows the relativization step being repeated on the first data visualization 654 to generate an updated data visualization 662, as shown in FIG. 14G. FIG. 14G shows a user selection (664) of the merge icon 646. FIG. 14H shows that in response to the user selection, the graphical user interface 100 displays a merged data visualization 666 in the first visualization card 124-3, including two lines 668-1 and 668-2 corresponding to inventory over time and maximum temperature over time. By converting the y-axis to a relative scale, the graphics become compatible and can be merged. 4. Annotating and / or Obscuring Visualization Cards
[0255] According to some implementations of the present disclosure, RemixTape supports visual card annotations. Annotations on a viz card can be ephemeral or pinned in place. Temporary annotations are tied to the cursor position when the mouse hovers over the visualization and visualize horizontal and vertical reference lines and corresponding date and metric value text annotations. Horizontal reference lines and value annotations can also be pinned in place by clicking on the margin (e.g., the right margin) of the viz card; clicking again clears the pinned annotation. In some implementations, RemixTape also provides dramatic subtractive reveals. For example, a user can add a semi-opaque mask to obscure portions of a chart (e.g., similar to a frosted glass filter applied to obscure portions of an image or video). As with pinned annotations, clicking on the card margin removes this obscuring mask, revealing the value underneath.
[0256] 15A-15H provide a series of screenshots for interacting with visualization cards according to some implementations.
[0257] FIG. 15A shows a visualization card 124 that includes a data visualization 672 (eg, a line graph).
[0258] 15B illustrates that, in some implementations, in response to a user interaction (674) (e.g., a mouse hover over action) with (e.g., within) the visualization card 124, the computing device 200 (e.g., temporarily) annotates the visualization card 124. For example, FIG. 15B illustrates that in response to the user interaction, the computing device 200 displays (e.g., visualizes) a horizontal reference line 676 and / or a value 678 (e.g., a y-value) corresponding to the horizontal reference line 676. In some implementations, in response to the user interaction, the graphical user interface 100 displays a vertical reference line 680 and / or a value 682 (e.g., an x-value or a date / time value) corresponding to the vertical reference line 680.
[0259] Figure 15C shows another user interaction (684) with the visualization card 124. In this example, the user selects (e.g., via a mouse click) an upper region (e.g., an area or white space) of the data visualization 672. Figure 15C shows that in response to the user interaction, the graphical user interface 100 displays a dividing line 686 (e.g., a divider or dividing line) that extends vertically from the point of the mouse click to the x-axis (e.g., the chronological or time axis) of the data visualization 672.
[0260] Figure 15D shows that in some implementations, in response to a user interaction, the graphical user interface displays the group of action icons 570 described with respect to Figure 12B. Figure 15D shows user interaction (688) with a fourth action icon 570-4. Figure 15E shows that in response to a user selection, the computing device 200 updates the display of the data visualization 672 by obscuring (e.g., blurring, masking with an overlay, or applying a "frosted glass" overlay) the portion of the data visualization 672 to the right of the dividing line 686.
[0261] 15F-15H illustrate persistent annotations of visualization cards according to some implementations. For example, FIG. 15F shows that a user can interact (690) with a region (e.g., an area or white space) of a data visualization 672 (e.g., via a mouse click or right click) to “pin” (e.g., permanently annotate) a horizontal reference line (e.g., an upper reference line 692 or a lower reference line 694) and corresponding values 696 and 698. FIGs. 15G and 15H show that in some implementations, a user can select (e.g., click) (700) a corner of the data visualization to remove a persistent annotation. F. Coordination of adjacent visualizations and text cards
[0262] RemixTape considers visualizations and textual commentaries to deserve similar levels of prominence in a data-driven narrative. Thus, when placed in a sequence, RemixTape provides the opportunity to align text cards with the visualization cards that precede or follow them.
[0263] According to some implementations of the present disclosure, after commentary is added to a text card, each paragraph can be linked (e.g., explicitly) to an adjacent visualization card to the left or right of the text card. In some implementations, when a link is enabled, the computing device 200 invokes a library (e.g., the SUTime library) for recognizing and normalizing time expressions within a paragraph. If the time expression intersects with the time domain of the linked visualization card, subsequent mouse hover events on that paragraph temporarily highlight the time span mentioned in that paragraph. For example, if a text card contains the paragraph "Company profits increased and then decreased between May and July 2021," line segments in adjacent viz cards corresponding to periods outside this three-month span are de-highlighted until the mouse cursor leaves the paragraph block.
[0264] 16A-16N provide a series of screenshots for interacting with the graphical user interface 100, according to some implementations.
[0265] 16A shows a scene 118 displayed in a graphical user interface according to some implementations. FIG. 16A shows that the scene 118 includes a first visualization card 124-1 having a first data visualization 702. The scene 118 includes a second visualization card 124-2 having a second data visualization 704. The scene includes a text card 122-1 positioned between the visualization card 124-1 and the visualization card 124-2. The text card 122-1 includes a text input element 706-1 (e.g., a text box, a text entry box, or a freeform text box) for receiving user text input (e.g., text input to add context to the scene).
[0266] In some implementations, a text card can include any number of statements.
[0267] In some implementations, when the amount of text exceeds the dimensions of the text card, the text card can be scrolled vertically.
[0268] 16A shows that, in some implementations, text card 122-1 includes one or more link icons 716 (e.g., link icons 716-1 and 716-2) (e.g., buttons, affordances, user-selectable interface elements, or links) that, when selected, link (i) a text input element adjacent to (e.g., above) the icon 716 and (ii) a data visualization adjacent to the icon 716. As shown below, in some implementations, user selection of the left link icon 716-1 links the text input element 706-1 to the first data visualization 702. User selection of the right link icon 716-2 links the text input element 706-1 to the second data visualization 704.
[0269] FIG. 16B shows graphical user interface 100 receiving text input from a user via text input element 706-1.
[0270] Figure 16C shows a user selection (708) of icon 710 to add a text input element to text card 122-1, and Figure 16D shows that in response to the user selection, a second text input element 706-2 is added to text card 122-1.
[0271] FIG. 16E shows the graphical user interface 100 receiving text input from the user via the second text input element 706-2.
[0272] 16F shows a user selection (712) of the top-left link icon 716-1. In some implementations, an active (e.g., activated, recommended, selected, or enabled) link icon 716 is displayed in a manner that is visually distinct from another inactive link icon 716. For example, an active link icon 716 may have a different color, or different shading, or different visual emphasis compared to another inactive link icon 716. For example, in FIG. 16F, the top-left link icon 716-1 has a different color (or shading) compared to the top-right link icon 716-2.
[0273] In some implementations, when the link icon 716 is active, the computing device 200 invokes a library (e.g., the SUTime library) that recognizes and normalizes time expressions in the corresponding text input element 706. If the time expression intersects with the time domain of the linked visualization card (e.g., the data visualization 702), subsequent user interaction (e.g., a mouse hover event) with the text input element 706 causes the computing device 200 to temporarily highlight the portion of the data visualization that corresponds to the time span referenced in the text input element 706.
[0274] 16G illustrates a user interaction with the first text input element 706-1. In this example, the user hovers (718) a mouse cursor over the first text input element 706-1. FIG. 16G illustrates that in response to the user interaction, a central region 720 (e.g., a portion of a line graph) of the data visualization 702 in the first visualization card 124-1 that corresponds to the time span referenced in the first text input element 706-1 (e.g., "between July 2020 and March 2021") is visually highlighted.
[0275] 16H shows the user moving (722) the cursor out of the first text input element 706-1. In response to the user interaction, the data visualization 702 is restored to its initial state. Note that the link icon 716-1 in the upper left remains selected, as indicated by the cross-hatching.
[0276] 16I illustrates user activation of the top right link icon 716-2 (in the example of FIG. 16I, both the top left link icon 716-1 and the top right link icon 716-2 are activated). In some implementations, when a link icon 716 is activated, the computing device 200 invokes a library to determine whether the corresponding text input element 706 includes a time expression that intersects with the time domain of the linked data visualization.
[0277] Figure 16J illustrates a mouse hover action (724) (e.g., by a user) over the first text input element 706-1. Figure 16J illustrates that, in response to the user interaction, the computing device 200 visually highlights a central region 720 of the first data visualization 702 that corresponds to the timespan "between July 2020 and March 2021" mentioned in the first text input element 706-1. The computing device 200 also visually highlights a central region 726 of the second data visualization 704 that corresponds to the timespan "between July 2020 and March 2021" mentioned in the text input element 706-1.
[0278] FIG. 16K shows that in response to moving (728) the cursor to a position outside the first text input element 706-1, the first data visualization 702 and the second data visualization return to their initial states.
[0279] 16L illustrates user selection (730) of the bottom right link icon 716-4. In this example, selection of the bottom right link icon 716-4 links the second text input element 706-2 (i.e., the text input element adjacent to (e.g., above) the bottom right link icon 716-4) to the second data visualization 704 (i.e., the data visualization adjacent to the bottom right link icon 716-4). Note that the bottom left link icon 716-3 is not selected.
[0280] Figure 16M illustrates a mouse hover action (732) over the second text input element 706-2. Figure 16M shows that, in response to the interaction, the computing device 200 visually highlights the right-most region 734 of the second data visualization 704 that corresponds to the time span "since January 2021" mentioned in the text input element 706-2. Because the bottom-left link icon 716-3 is not selected, no portion of the first data visualization 702 is highlighted.
[0281] FIG. 16N shows the second data visualization 704 returning to its initial state in response to moving the cursor (736) to a position outside the second text input element 706-2. G. Toggle between Design and Presentation Mode
[0282] 17A-17D provide a series of screenshots for interacting with the graphical user interface 100, according to some implementations.
[0283] According to some implementations, RemixTape (eg, the graphical user interface 100) is operable in a design mode (eg, canvas) mode and a presentation mode.
[0284] Figure 17A shows the graphical user interface 100 when RemixTape is in design mode, according to some implementations. In some implementations, the operations shown in Figures 1 and 4-16 are performed when RemixTape is in design mode. Figure 17A shows a mode icon 752 that, when selected, causes RemixTape to switch (e.g., toggle) into presentation mode (e.g., "present" mode). Figure 17A shows user selection (754) of mode icon 752.
[0285] 17B-17D show views of the graphical user interface 100 when the application is in presentation mode (e.g., in response to user selection of mode icon 752). In presentation mode, scenes and cards are enlarged and all editing operations are disabled / hidden. Annotations (e.g., horizontal markers or faded-out portions of charts) and interactive links between text and charts are preserved to facilitate dynamic narration. Annotations added in design mode (e.g., as shown in FIG. 15) and links between text cards and visualization cards (e.g., as shown in FIG. 16) persist in presentation mode. In presentation mode, the mode icon 752 indicates the option to switch back to design mode. Thus, the disclosed graphical user interface improves upon existing interfaces by enabling users to build semantically aligned presentations based on data and present the data in a manner that facilitates dynamic narration.
[0286] In some implementations, a RemixTape presentation can be displayed as a carousel of cards embedded within a conversation channel within a collaboration platform such as Slack. H. Flowchart
[0287] 18A-18F provide a flowchart of a method 1000 for recommending visualizations for interactive presentations of time-series metrics, according to some implementations. The method enhances the user experience by helping users identify new metrics to introduce into the presentation. Method 1000 may also be referred to as a process.
[0288] The method 1000 is performed 1002 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1004 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1000 may be combined and / or the order of some operations may be changed.
[0289] In some implementations, the computing device 200 receives 1006 a user selection of one or more data sources 240, workbooks 244, and / or sheets 246.
[0290] The computing device 200 identifies 1008 a plurality of metrics (e.g., time-series metrics) corresponding to one or more data sources. Each metric of the plurality of metrics has a respective temporal (e.g., time) attribute. For example, in some cases, all metrics are from one data source (or one workbook or one sheet). In some cases, metrics are from two or more data sources (or two or more workbooks, or two or more sheets, or one data source and one workbook). In some cases, metrics are associated with heterogeneous data sources, time periods, and / or time granularities. In some cases, metrics have a fixed time interval / time range (e.g., November 16, 2020 to April 13, 2022).
[0291] As used herein, a metric is a univariate quantitative value that changes over time. In some cases, a metric 120 is a calculated data field (e.g., a calculation performed on one or more data fields) whose value changes over time. In some cases, a metric is a calculation based on a measured data field (e.g., a quantitative data field). In some implementations, a metric is referred to as time-oriented data.
[0292] In some instances, the one or more data sources include a second metric having a categorical data field (e.g., a dimensional data field) 1010. An example of a metric having a categorical data field is "aggregate sales over time," where the aggregate sales are further broken down into sales by region, such as North, South, East, and West.
[0293] In some implementations, the computing device 200 displays (1012) in the graphical user interface 100 a data schema and filter panel 102 including multiple metrics and a canvas area (e.g., canvas area 106) for adding one or more scenes for an interactive presentation.
[0294] In some instances, a scene includes one or more visualization cards 124 or text cards 122.
[0295] In some cases, before receiving a first user input to add a data visualization to a first visualization card in a first scene of an interactive presentation, the computing device 200 receives a second user input to add the first visualization card to the first scene (1014). In response to the second user input, the computing device 200 displays (1016) (e.g., generates and displays) a blank card (e.g., an empty visualization card in the first scene). A blank visualization card is a card that does not include a data visualization.
[0296] The computing device 200 receives a first user input for adding a data visualization to a first visualization card in a first scene of the interactive presentation (1018). In some instances, the first user input includes a user selection of a blank visualization card in the canvas area 106 (e.g., as shown in FIGS. 7A and 10C) (1020). In some instances, the first user input includes a user activation of a toggle button (e.g., the recommendations button 502 shown in FIGS. 10A and 10B) to activate “recommendations” in the graphical user interface 100.
[0297] In response to a first user input, when a first scene is an initial scene (e.g., an opening scene) to be added to the canvas area (e.g., a first visualization card is the first card to be added to the first scene or canvas area), the computing device 200 calculates (1022) for each metric of the plurality of metrics a respective parameter that measures the variability (e.g., variation or difference) in the value of the respective metric.
[0298] In some implementations, the respective parameters include a dispersion parameter, such as a statistical dispersion parameter (e.g., a mean, a variance, a deviation, or a range). For example, in some implementations, the computing device 200 calculates, for each metric of the plurality of metrics, the mean value, the range of values, or the deviation of values (e.g., the standard deviation, the mean deviation, or the quartile deviation) of the respective metric.
[0299] In some implementations, the respective parameter is a coefficient of variation (eg, a coefficient of dispersion).
[0300] The computing device 200 identifies (1024) (e.g., determines) a first subset of metrics from the plurality of metrics based on the calculated parameters. For example, in some implementations, the first subset of metrics includes metrics that have the most varying time trends (e.g., according to the calculation). Thus, the method improves the user experience by helping the user identify new metrics to introduce into the presentation.
[0301] In some implementations, identifying the first subset of metrics includes ranking (1026) the plurality of metrics (e.g., in ascending or descending order) based on the calculated parameters, and identifying (1028) the first subset of metrics according to the ranking.
[0302] In some implementations, identifying the first subset of metrics includes determining (1030) that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold.
[0303] The computing device 200 generates (1032) a respective data visualization for each metric in the first subset of metrics.
[0304] In some implementations, generating each data visualization includes retrieving (1034) (i) a metric definition for a metric corresponding to each data visualization, and / or (ii) data corresponding to the metric.
[0305] In some implementations, the metric definition includes information (e.g., instructions) that the computing device 200 can use to construct a visualization of the metric. In other words, rather than retrieving a static, previously saved, older version of the data visualization itself, the computing device 200 constructs the data visualization using the metric definition and / or data corresponding to the most recent metric. This approach is therefore advantageous compared to existing methods (and systems) that rely on "static" charts with data that is "frozen-in-time" at the time the chart is created.
[0306] In some implementations, the metric definition and / or its associated data is retrieved from a data source, a metric definition repository (e.g., a common metrics layer that allows users to specify metrics directly from data fields, or a common metrics layer API), a visualization worksheet, and / or a visualization workbook.
[0307] In some implementations, metric definitions can be specified on the fly, and in some implementations, metric definitions (obtained from visualization worksheets) appear as siblings of workbooks in the same folder on the server (e.g., Tableau Cloud).
[0308] In some implementations, the metric definition specifies how the metric is visually represented (e.g., as a text indicator and a line chart, or as a text indicator alone). In some implementations, metrics can be added as "favorites" or to ad-hoc collections by users with appropriate permissions.
[0309] In some implementations, each data visualization is a pre-existing data visualization generated by (e.g., retrieved by) a computing device.
[0310] The computing device 200 displays 1036 the multiple generated data visualizations (e.g., see FIG. 10D ) as recommendations for the first visualization card in the recommendation area 104 of the graphical user interface. Generating and displaying two or more independent visualization recommendations in the same recommendation area provides visual feedback to the user, assists the user in building a coherent narrative using metrics, reduces typing, and / or reduces user errors in selecting inappropriate metrics.
[0311] In some implementations, each of the multiple data visualizations is a line graph (e.g., a line chart, line plot, or time series line graph) that shows the change in the value (or aggregated data values) of the respective metric over the date / time range corresponding to the respective metric (1038).
[0312] The computing device 200 receives 1040 a user selection of a first data visualization from the plurality of data visualizations that corresponds to a first metric of the subset of metrics. For example, Figure 10E illustrates a user selection of an "Add to Card" icon 450-7 corresponding to visualization recommendation 448-7 to add the visualization recommendation (e.g., the data visualization) to visualization card 124-5.
[0313] In some instances, the first data visualization is a line chart (1042).
[0314] In some instances, the first data visualization includes data values spanning a first date / time range 1044. For example, in FIG. 10E, the first visualization recommendation 448-7 has a date / time range from January 1, 2020 to June 30, 2021.
[0315] In response to the user selection, the computing device 200 populates the first data visualization into the first visualization card (1046). For example, the computing device 200 displays (or causes to be displayed) the first data visualization in the first visualization card.
[0316] In some instances, populating the first visualization card with the first data visualization includes updating a blank visualization card to include the first data visualization (1048). For example, the transition from Figure 10E to Figure 10F shows blank visualization card 124-5 being populated with data visualization 452-3.
[0317] In some implementations, in response to a first user input, and when a second visualization card having a second data visualization and corresponding to a second metric of the plurality of metrics is populated into the first scene (e.g., the first scene already includes the second visualization card), the computing device 200 determines (1050) (e.g., identifies) one or more metrics corresponding to the second visualization card.
[0318] In some instances, the second visualization card immediately precedes the first visualization card in the first scene (1052).
[0319] In some implementations, the computing device 200 identifies a second subset of metrics that excludes one or more metrics from the plurality of metrics (1054). For example, in some implementations, the second subset of metrics includes all metrics not previously used in the first scene.
[0320] In some implementations, the computing device 200 calculates, for each metric in the second subset of metrics, a respective correlation coefficient (e.g., a Pearson correlation coefficient) between (i) the value of the metric and (ii) the data values displayed in the second data visualization (1056). For example, in some implementations, each correlation coefficient is the Pearson correlation coefficient r, which is a measure of linear correlation between two data sets. It is the ratio between the covariance of two variables and the product of their standard deviations. Thus, it is essentially a normalized measure of covariance, such that the result has a value between -1 and 1.
[0321] In some implementations, the computing device 200 identifies (1058) a third metric from the second subset of metrics based on the calculated correlation coefficient.
[0322] In some cases, the third metric has the strongest correlation (e.g., directly or indirectly, or has the highest |r| value) with the second metric among the second subset of metrics (1060).
[0323] In some implementations, the computing device 200 generates (1062) a third data visualization corresponding to a third metric.
[0324] In some implementations, generating a third data visualization corresponding to the third metric includes retrieving a metric definition and associated data corresponding to the third metric (1064) and generating the third data visualization using the metric definition and associated data (1066).
[0325] In some implementations, the computing device 200 displays (1068) the third data visualization in the recommendations area.
[0326] In some instances, the first data visualization includes data values spanning a first date / time range. After populating the first data visualization into the first visualization card, the computing device 200 receives (1070) a second user input to add a second visualization card within the first scene.
[0327] For example, in some instances, the second visualization card immediately follows the first visualization card in the first scene (or the first data visualization card immediately follows the second visualization card), and in some instances, the second visualization card follows a text card that is inserted after the first visualization card.
[0328] In some implementations, in response to the second user input, the computing device 200 generates one or more visualization recommendations for the second visualization card (1072). The one or more visualization recommendations include one or more of: (i) a first visualization recommendation that filters (e.g., focuses on or drills down on) the values of the first metric to a subset of data values corresponding to a second date / time range that is narrower than the first date / time range, or (ii) a second visualization recommendation that spans the entire time period of the one or more data sources (1074).
[0329] In some cases, the subset of data values corresponds to a local maximum or minimum in the first data visualization (1076) (e.g., the subset of data values forms a peak or valley in the first data visualization).
[0330] In some implementations, the method 1000 further includes identifying a subset of the data values using a moving average algorithm (1078), generating a first line chart including the subset of the data values (1080), and displaying the first line chart in the recommendation area (1082).
[0331] In some implementations, the moving average algorithm uses three input parameters: (1) lag, which controls the size of the moving window; (2) threshold (λ), which determines the number of standard deviations (i.e., z-score); and (3) influence, which controls how much influence a new data point has on the moving average and standard deviation. At each time step t, the moving average μ t and standard deviation σ t is calculated using the data in a moving window. The data points are those whose values are μ t +λ*σ t A data point is considered a peak if its value is greater than μ t -λ*σ t If it is less than this, it is considered a valley.
[0332] In some implementations, the one or more visualization recommendations include a third visualization recommendation corresponding to a second metric that is different from the first metric (1084).
[0333] In some instances, the one or more data sources include a second metric having a categorical data field (e.g., a dimensional data field). An example of a metric having a categorical data field is the metric “911 Calls” in FIG. 10G, where the metric (e.g., 911 Calls) may be further broken down into calls by region, such as a central region, a northern region, and a southern region (see, e.g., first visualization recommendation 448-10 in FIG. 10G). In some implementations, the computing device 200 generates (e.g., automatically, without user intervention) a third visualization recommendation (1086) that includes a second line chart (e.g., a multi-series line chart) having multiple lines. Each of the lines corresponds to a distinct data value of the categorical data field (e.g., a respective categorical data value, such as “Central,” “North,” or “South”) (e.g., each line in the line chart corresponds to a respective categorical data value). The computing device 200 displays (1088) the third visualization recommendation in the recommendation area.
[0334] In some instances, the one or more data sources include a second metric having a categorical data field. The computing device 200 generates (1090) (e.g., automatically, without user intervention) a second data visualization having multiple lines (e.g., a line chart or a multi-series line chart). Each of the lines corresponds to a distinct data value of the categorical data field (e.g., each line in the chart corresponds to a respective categorical data value). The computing device 200 displays (1091) the second data visualization in the recommendation area.
[0335] In some implementations, the first data visualization and the second data visualization are displayed 1092 simultaneously (eg, side-by-side) in the recommendation area.
[0336] In some instances, the computing device 200 receives a user selection (e.g., manual user selection) of a second metric among the plurality of metrics in the data schema and filter panel (1093). In response to the user selection, the computing device 200 displays a second data visualization corresponding to the second metric in the recommendations area (1094). This is shown in FIG. 8A.
[0337] In some implementations, displaying the second visualization includes replacing the plurality of data visualizations displayed in the recommendations area with the second data visualization. In some implementations, displaying the second visualization includes displaying the second visualization in addition to the plurality of data visualizations displayed in the recommendations area.
[0338] In some instances, the computing device 200 receives (1095) a user selection (e.g., in parallel) of a second metric and a third metric among the multiple metrics in the data schema and filter panel (e.g., the user simultaneously or in parallel selects the second metric and the third metric, as in FIG. 6C ). In response to the user selection, the computing device 200 generates (1096) a second data visualization including two lines corresponding to the second metric and the third metric, respectively. The computing device 200 displays (1097) the second data visualization in the recommendation area.
[0339] 19A-19E provide a flowchart of a method 1100 for recommending visualizations for interactive presentation of time-series metrics, according to some implementations. The method 1100 may also be referred to as a process.
[0340] The method 1100 is performed 1102 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1104 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1100 may be combined and / or the order of some operations may be changed.
[0341] In some implementations, the computing device 200 receives (1106) a user selection of one or more data sources.
[0342] The computing device 200 identifies 1108 a plurality of metrics corresponding to one or more data sources, each metric of the plurality of metrics having a respective time attribute.
[0343] The computing device 200 displays 1100 a canvas area 106 in the graphical user interface 100 for adding one or more scenes 118 for an interactive presentation.
[0344] In some implementations, the graphical user interface includes a data schema and filter panel 102 for displaying multiple metrics (1112).
[0345] The computing device 200 receives 1114 a first user input for adding a first data visualization to a first visualization card in a first scene of the interactive presentation. For example, in some implementations, the user input includes a user selection of the first visualization card in the canvas area. In some implementations, the first user input includes a user activation of a toggle button (e.g., recommendations button 502) to activate a “recommendations” feature on the graphical user interface.
[0346] In response to the first user input, when the canvas area includes a previous scene having a second visualization card with a second data visualization (e.g., the second visualization card is already present in the previous scene before the first user input), the computing device 200 calculates (1116) for each metric of the plurality of metrics a respective parameter (e.g., a statistical dispersion parameter such as the mean, variance, deviation, or range) that measures the variability of the values of the respective metric.
[0347] The computing device 200 identifies 1118 a first subset of metrics from the plurality of metrics based on the calculated parameters. For example, in some implementations, the first subset of metrics includes metrics with the most variable time trends. The method improves the user experience by helping users identify new or interesting metrics to introduce into the presentation.
[0348] In some implementations, identifying the first subset of metrics includes ranking 1120 the plurality of metrics (e.g., in ascending or descending order) based on the calculated parameters and identifying 1122 the first subset of metrics according to the ranking. The method improves the user experience by helping users identify new or interesting metrics to introduce into a presentation.
[0349] In some implementations, identifying the first subset of metrics includes determining (1124) that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold.
[0350] The computing device 200 generates (1126) (eg, automatically, without user intervention) a respective data visualization for each metric in the first subset of metrics.
[0351] In some implementations, generating each data visualization includes retrieving (1128) (i) a metric definition for a metric corresponding to each data visualization, and / or (ii) data corresponding to the metric (e.g., automatically without user intervention).
[0352] The computing device 200 identifies (1130) a first metric of the plurality of metrics to which the second data visualization corresponds.
[0353] The computing device 200 determines (1132) whether the first subset of metrics includes the first metric.
[0354] The computing device 200 displays 1134 the multiple generated data visualizations in the recommendation area 104 of the graphical user interface according to the determination of the first visualization card. Generating and displaying two or more independent visualization recommendations in the same recommendation area provides visual feedback to the user, assists the user in building a coherent narrative using metrics, reduces typing, and / or reduces user errors in selecting inappropriate metrics.
[0355] In some implementations, each of the multiple data visualizations is a line graph showing the change in value of the respective metric over the date / time range corresponding to the respective metric (1136).
[0356] In some implementations, the multiple data visualizations are displayed 1138 as a list (e.g., a scrollable list or a list with a drop-down menu) in the recommendations area. For example, in some implementations, the list is ordered according to the degree of variability of each parameter. In some implementations, the metric with the highest variability (e.g., maximum value range, largest standard deviation, or greatest variation) is displayed first in the list. In some implementations, the metric with the highest variability is displayed last in the list.
[0357] In some implementations, displaying the plurality of generated data visualizations according to the determination includes, when the first subset of metrics includes (e.g., encompasses) the second metric, decreasing the priority (e.g., lowering the priority) of the second metric in the first subset (1140).
[0358] For example, in some implementations, if other scenes are already present in the canvas, the computing device takes the existing content into account and deprioritizes metrics that are already covered (e.g., described) in other scenes. In some implementations, recommendations focus on unused metrics with the most variable temporal trends.
[0359] The method enhances the user experience by helping users identify and include in their presentation metrics that have not yet been discussed.
[0360] In some implementations, decreasing the priority of the second metric includes changing (1142) the order in which the second data visualization appears in the list (e.g., sorting or changing its position on the list). For example, when the first subset of metrics includes the second metric, the computing device (e.g., application 230) may move the second data visualization to a lower position on the list.
[0361] In some implementations, decreasing the priority of the second metric includes excluding the second visualization from the displayed plurality of data visualizations (1144). For example, the computing device generates and displays an updated plurality of data visualizations that excludes the second visualization.
[0362] In some instances, the computing device 200 receives (1146) a user selection of a first data visualization among the plurality of data visualizations that corresponds to a second metric of the subset of metrics.
[0363] In some instances, the first data visualization includes data values across a first date / time range (1148).
[0364] In some implementations, in response to the user selection, the computing device 200 populates the first data visualization into the first visualization card (1150). For example, the computing device displays (or causes to be displayed) the first data visualization in the first visualization card.
[0365] In some instances, the first data visualization includes data values spanning a first date / time range. After populating the first data visualization into the first visualization card, the computing device 200 receives (1152) a second user input to add a third visualization card within the first scene.
[0366] In response to the second user input, the computing device 200 generates one or more visualization recommendations for the third visualization card (1154).
[0367] In some implementations, the one or more visualization recommendations include one or more of: (i) a first visualization recommendation that filters (e.g., focuses on or drills down on) the values of the first metric to a subset of data values corresponding to a second date / time range that is narrower than the first date / time range, or (iii) a second visualization recommendation that spans the entire time period of the one or more data sources (1156). The method improves the user experience by recommending charts that can help authors talk step-by-step about a metric using a series of cards.
[0368] In some implementations, the subset of data values corresponds to local maxima (eg, peaks) or minima (eg, valleys) in the first data visualization (1158).
[0369] In some implementations, the method 1100 includes identifying a subset of data values using a moving average algorithm (1160), generating a first line chart including the subset of data values (1162), and displaying the first line chart in a recommendation area (1164).
[0370] In some implementations, the algorithm uses three input parameters: (1) lag, which controls the size of the moving window; (2) threshold (λ), which determines the number of standard deviations (i.e., z-score); and (3) influence, which controls how much influence a new data point has on the moving average and standard deviation. At each time step t, the moving average μ t and standard deviation σ t is calculated using the data in a moving window. The data points are those whose values are μ t +λ*σ t If it exceeds μ, it is considered a peak. t -λ*σ t If it is less than this, it is considered a valley.
[0371] In some instances, the one or more data sources include a second metric having a categorical data field (1166). The method 1100 further includes generating (1168) (e.g., automatically, without user intervention) a line chart having multiple lines (e.g., a multi-series line chart). Each line corresponds to a distinct data value of the categorical data field. The method 1100 further includes displaying (1170) the line chart in the recommendation area.
[0372] In some instances, the computing device 200 receives a user selection (e.g., manual selection) of a second metric from among the plurality of metrics in the data schema and filter panel (1172). In response to the user selection, the computing device 200 displays (1174) (e.g., generates and displays) a second data visualization in the recommendations area that corresponds to the second metric.
[0373] In some instances, the computing device 200 receives a user selection (1176) of a second metric and a third metric among the plurality of metrics in the data schema and filter panel (e.g., manual user selection). The second metric and the third metric are selected in parallel by the user (e.g., see FIG. 6C).
[0374] In some implementations, in response to the user selection, the computing device 200 retrieves metric definitions and associated data corresponding to the second and third metrics. The computing device 200 generates (1178) a second data visualization including two lines (e.g., a multi-series line chart) corresponding to the second and third metrics, respectively. The computing device 200 displays (1180) the second data visualization in the recommendations area.
[0375] 20A-20E provide a flowchart of a method 1200 for presenting time series metrics, according to some implementations. The method 1200 may also be referred to as a process.
[0376] The method 1200 is performed 1202 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1204 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1200 may be combined and / or the order of some operations may be changed.
[0377] The computing device 200 displays 1206 in a graphical user interface a canvas area 106 including one or more scenes 118. The one or more scenes include a first scene 118-1 having a first visualization card 124-1. In some implementations, the first visualization card is a blank visualization card that does not include any data visualization. In some implementations, the first visualization card includes (e.g., contains) a data visualization.
[0378] In some instances, the first scene includes a second visualization card adjacent to the first visualization card (1208), the second visualization card having a second data visualization.
[0379] The computing device 200 displays 1210 in the graphical user interface the recommendation region 104 including one or more data visualizations. Each data visualization of the one or more data visualizations corresponds to a respective metric of the data source. Each metric has a respective time attribute. In some implementations, the metrics span different time periods and have different time granularities.
[0380] In some instances, the one or more data visualizations include a first data visualization having a first temporal granularity (1212). For example, the first temporal granularity can be a "Year" (Y) granularity, a "Year-Month" (YM) granularity, or a "Year-Month-Day" (YMD) granularity. This is shown in Figures 7B, 7C, and 7D.
[0381] In some instances, the one or more data visualizations include a first data visualization having a time axis domain that includes a start date and an end date (1214).
[0382] In some instances, the first data visualization includes a plurality of data marks, including data marks corresponding to a start date and an end date (1216).
[0383] In some instances, the first data visualization is a line chart (e.g., a line graph) (1218).
[0384] In some implementations, before displaying one or more data visualizations in the recommendation area, the computing device 200 generates one or more data visualizations (1220). In some implementations, the generating includes identifying a plurality of metrics (e.g., time series metrics) corresponding to a data source (1222). Each metric of the plurality of metrics has a respective time attribute. The generating includes calculating, for each metric of the plurality of metrics, a respective parameter measuring the variability of the value of the respective metric (1224), identifying a subset of metrics from the plurality of metrics based on the calculated parameter (1226), retrieving or generating a respective data visualization for each metric in the subset of metrics (1228), and displaying the one or more retrieved / generated data visualizations in the recommendation area (1230). The method improves the user experience by helping users identify new or interesting metrics to introduce into a presentation.
[0385] In some implementations, generating one or more data visualizations includes, when the canvas area includes a second scene having a second visualization card with the second data visualization, determining (1232) a second metric among the plurality of metrics to which the second data visualization corresponds. The generating includes determining (1234) whether a subset of metrics includes the second metric. When the subset of metrics includes the second metric, the computing device 200 lowers the priority of the second metric in the subset (1236). This method improves the user experience by helping the user identify undiscussed metrics to introduce into the presentation.
[0386] In some implementations, the computing device 200 displays 1238 the data schema and filter panel 102 in a graphical user interface.
[0387] In some implementations, the computing device 200 displays (1240) multiple metrics (eg, identifiers corresponding to multiple metrics) in the data schema and filter panel 102.
[0388] In some implementations, the plurality of metrics corresponds to (eg, is associated with) one or more data sources (1242).
[0389] In some implementations, the computing device 200 displays 1244 a scene summary (e.g., scene summary 130 of FIG. 1B) in the graphical user interface. In some implementations, the scene summary summarizes all scenes on the canvas. For each scene of one or more scenes, the scene summary includes: (i) a count (e.g., number) of each visualization card corresponding to the scene; (ii) a count of each text card corresponding to the scene; (iii) a count of each unique (e.g., distinct) metric corresponding to the scene (e.g., the scene summary includes the number of unique metrics for each scene of the one or more scenes); and (iv) a cumulative temporal span corresponding to each scene. This is shown in FIG. 1B. This feature enhances the user experience by providing a graphical summary of the canvas and showing the relevant metrics and temporal coverage of each scene.
[0390] In some implementations, each cumulative time span is displayed 1246 as a graphical element (eg, a bar, line, or rectangle) having a length proportional to the cumulative time span.
[0391] In some instances, the computing device 200 receives 1248 a user designation of a second temporal granularity for the first data visualization, different from the first temporal granularity. For example, the second temporal granularity may include a “Year” (Y) granularity, a “Year-Month” (YM) granularity, or a “Year-Month-Day” (YMD) granularity.
[0392] In some implementations, the user specification includes a user selection of a user interface element (e.g., an icon or button) within a data schema and filter panel (e.g., via the granularity filter 110 as shown in Figures 7C and 7D) that corresponds to the second time granularity (1250).
[0393] In some implementations, in accordance with the user specification, the computing device 200 updates (1252) the data marks in the first data visualization to include a subset of the data marks that correspond to the second time granularity.
[0394] In some implementations, the computing device 200 determines from one or more data sources a start date (e.g., an earliest or oldest date, month, and / or year) and an end date (e.g., a most recent date, month, and / or year) corresponding to the plurality of metrics (1254). The computing device 200 displays the start and end dates in the data schema and filter panels (1256).
[0395] In some instances, the computing device 200 receives user input modifying the start date and / or end date (1258). In accordance with the user input, the computing device 200 modifies the time axis domain of the first data visualization according to the modified start date and / or end date (1260). The computing device 200 displays the updated first data visualization with the modified time axis domain in the recommendations area (1262).
[0396] In some instances, the updated first data visualization includes a subset of the plurality of data marks filtered according to the modified time axis domain (1264).
[0397] In some instances, the computing device 200 receives a user selection to add a first data visualization corresponding to the first metric to the first visualization card (1266). In some implementations, the user selection includes a user selection of an “Add to Card” icon (e.g., add icon 450-1 in FIG. 6D or add icon 450-10 in FIG. 10J).
[0398] In response to the user selection, the computing device 200 updates the display of the first visualization card to include the first data visualization (1268).
[0399] In some implementations, in response to the user selection, the computing device 200 updates the scene summary 130 by incrementing (1272) the count of each of the visualization cards corresponding to the first scene (e.g., by one).
[0400] In some implementations, when the first data visualization corresponds to a distinct metric in the first scene (e.g., the first data visualization corresponds to a metric that does not yet appear in the first scene), the computing device 200 updates the scene summary by incrementing (e.g., by 1) the count of each unique metric that corresponds to the first scene (1272).
[0401] In some instances, the computing device 200 receives (1274) user input to specify that the first data visualization be merged with the second data visualization.
[0402] In some implementations, in response to user input and when (i) the first data visualization and the second data visualization share (e.g., include or have) a common time period and (ii) there is substantial overlap between a first range of values on the vertical axis of the first data visualization and a second first range of values on the vertical axis of the second data visualization, the computing device 200 merges the first data visualization and the second data visualization into a single (e.g., one) data visualization (1276).
[0403] 21A-21C provide a flowchart of a method 1300 for combining data visualizations on visualization cards in a time-series metric presentation, according to some implementations. The method 1300 may also be referred to as a process.
[0404] The method 1300 is performed 1302 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1304 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1300 may be combined and / or the order of some operations may be changed.
[0405] The computing device 200 displays 1306 in the graphical user interface 100 the canvas area 106 including a first scene 118. The first scene includes a first visualization card 124-1 having a first data visualization and a second visualization card 124-2 adjacent to the first visualization card. The second visualization card has a second data visualization.
[0406] In some implementations, the first visualization card is positioned 1308 to the left of (e.g., immediately to the left of or immediately adjacent to) the second visualization card in the first scene (e.g., there is no other text or visualization card between the first visualization card or the second visualization card). This is shown in FIG. 14A.
[0407] In some implementations, each of the first data visualization and the second data visualization is a line graph (1310).
[0408] In some implementations, the computing device 200 displays 1312 a recommendation area in a graphical user interface that includes one or more data visualizations, each corresponding to a respective metric of the data source. Each metric has a respective time attribute. In some implementations, the metrics span different time periods and have different time granularities.
[0409] The computing device 200 receives 1314 user input to specify that the first data visualization be merged with the second data visualization. In some implementations, the user input includes a user selection of a user-selectable interface element (e.g., a merge icon 646 as shown in FIG. 14A). In some implementations, the user-selectable interface element is disposed between the first and second visualization cards. In some implementations, the computing device displays the user-selectable interface element in accordance with determining (e.g., detecting) that the two visualization cards are disposed adjacent to one another.
[0410] In some implementations, in response to user input, the computing device 200 merges 1316 the first data visualization and the second data visualization into a single data visualization when (i) the first data visualization and the second data visualization share a common time period (e.g., the first data visualization spans a first time period on the x-axis and the second data visualization spans a second time period on the x-axis that overlaps with the first time period by at least 50%) and (ii) there is substantial overlap between a first range of values (e.g., numerical values, absolute values, percentage values, or ratios) on the vertical axis of the first data visualization and a second range of values on the vertical axis of the second data visualization (e.g., the first and second data visualizations have comparable numerical values or values of the same order of magnitude in the vertical axis domain).
[0411] In some cases, the first range of values (e.g., the vertical axis of the first data visualization) has a first unit of measure, and the second range of values (e.g., the vertical axis of the second data visualization) has a second unit of measure that is different from the first unit of measure (1318). In other words, the option to merge the two visualizations depends on the actual numeric values (e.g., y-values) of the first and second data visualizations, but the unit of measure of the values is not important.
[0412] In some implementations, the computing device 200 displays (1320) a legend including the first unit of measure and the second unit of measure along with the single data visualization.
[0413] In some implementations, the single data visualization includes a horizontal axis having a common time period and a single vertical axis having a range of values common to the first range of values and the second range of values (1322).
[0414] In some implementations, the single data visualization is a line graph (e.g., a multi-series line chart) consisting of two lines (1324).
[0415] In some implementations, the first visualization card is a line graph with one line (e.g., representing one metric), the second visualization card is a line graph with one line (e.g., representing one metric), and the merged data visualization is a line chart with two lines (e.g., two metrics).
[0416] In some implementations, the merged data visualization is a data visualization (e.g., a line chart) with multiple lines, where the number of lines is equal to the sum of the number of lines in the first data visualization on the first visualization card and the number of lines in the second data visualization on the second visualization card.
[0417] In some instances, the computing device 200 displays (1326) a single data visualization on the first visualization card.
[0418] In some implementations, displaying the single data visualization on the first data visualization card includes removing (1328) the second visualization card from the first scene (e.g., deleting or removing from display).
[0419] In some implementations, the method 1300 includes, in response to a user input, disallowing merging (unless converted) when (i) the first data visualization includes a first range of values on the vertical axis and (ii) the second data visualization includes a second range of values on the vertical axis that is substantially different from the first range of values (1330). In response to a first user input selecting a vertical axis of the first data visualization, the computing device 200 displays a user-selectable interface element (e.g., an icon, button, or affordance) adjacent to the vertical axis of the first data visualization to convert (e.g., convert) values on the vertical axis (e.g., the y-axis) from absolute values to relative values (e.g., percentages or ratios) (1332). The computing device 200 receives a first user selection of the user-selectable interface element (1334). In response to the first user selection, the computing device 200 converts (1336) (e.g., converts or indexes) the first range of values to a relative scale (e.g., ratio or percentage) based on the first value that appears in the first data visualization. For example, assume the first value on the vertical axis that appears in the first data visualization is approximately 10. That value becomes 100%. Other values on the vertical axis are relativized to the value 10 (e.g., a value of 15 becomes 150% or 1.5, a value of 8 becomes 80% or 0.8, etc.). This is shown in FIG. 14D.
[0420] In some implementations, the computing device 200 determines that a first value range and a second value range are substantially different when they do not have comparable value domains. For example, as shown in FIG. 14C , the first data visualization 654 has a value range of approximately 5 to 25, and the second data visualization 656 has a value range of approximately 2,000 to 5,000. In some implementations, the computing device 200 determines that a first value range and a second value range are substantially different when they differ by an order of magnitude. Using FIG. 14C as an example, the second value range is two orders of magnitude larger than the first value range. The computing device 200 determines that a first value range and a second value range are substantially different when there is no overlap between the first value range and the second value range.
[0421] The method enhances the user experience by presenting the user with a group of icons that can assist the user in the process of transforming the value domain of a data visualization. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves device usability and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0422] In some implementations, in response to a second user input selecting a vertical axis of the second data visualization, the computing device 200 displays a user-selectable interface element adjacent to the vertical axis of the second data visualization (1338). The computing device 200 receives a second user selection of the user-selectable interface element (1340). In response to the second user selection, the computing device 200 converts the second range of values to a relative scale relative to a first value appearing in the second data visualization (1342). This is shown in FIG.
[0423] The method enhances the user experience by presenting the user with a group of icons that can assist the user in the process of transforming the value domain of a data visualization. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves device usability and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0424] In some implementations, the computing device 200 receives a third user input to specify that the first data visualization be merged with the second data visualization (1344). For example, the third user input includes a user selection of a merge option, an icon, an affordance, or a button. In some implementations, in accordance with the third user input, the computing device 200 merges the first and second data visualizations into a single data visualization (1346).
[0425] 22A-22D provide a flowchart of a method 1400 for linking text and visualization in a time-series metric presentation, according to some implementations. The method 1400 may also be referred to as a process.
[0426] The method 1400 is performed 1402 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1404 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1400 may be combined and / or the order of some operations may be changed.
[0427] The computing device 200 displays (1406) in the graphical user interface a canvas area including a first scene 118. The first scene includes a first visualization card 124-1 having a first data visualization and a first text card 122-1 adjacent to (e.g., to the left or right of) the first visualization card.
[0428] In some instances, the first data visualization is a line chart (1408).
[0429] In some instances, the first scene includes 1410 a second visualization card 124-2 having a second data visualization.
[0430] In some implementations, the first text card is placed 1412 between the first visualization card and the second visualization card, as shown in FIG.
[0431] In some implementations, each of the first data visualization and the second data visualization is a line chart (1414).
[0432] In some implementations, the first text card includes multiple text input elements (e.g., text input elements 706-1 and 706-2 in FIG. 16D ) (1416). In some implementations, each of the text input elements can be linked to either a visualization card to the left of the text card or a visualization card to the right of the text card.
[0433] In some implementations, the plurality of text input elements includes (1418) a first text input element 706-1 and a second text input element 706-2.
[0434] In some implementations, the computing device 200 displays 1420 in a graphical user interface a recommendation area 104 that includes one or more data visualizations. Each data visualization of the one or more data visualizations corresponds to a respective metric of a data source, and each metric has a respective time attribute. The metrics can span different time periods and have different time granularities. Generating two or more independent visualization recommendations in the same recommendation area reduces the number of user inputs required to build a presentation using composite data visualizations, making interaction with the block user interface more efficient.
[0435] The computing device 200 receives (1422) via the first text card (i) text input from the user and (ii) a user selection of a first user interface element to link the first text card to the first visualization card. For example, the text input includes a description of the first data visualization.
[0436] In some implementations, text input from a user is received 1424 via multiple text input elements.
[0437] In accordance with receiving, the computing device 200 determines whether the text input includes a first representation having a first time span that intersects (e.g., at least partially overlaps) with the time domain of the first data visualization (1426). In some implementations, the computing device invokes a library for recognizing and normalizing time representations within paragraphs to perform the determination.
[0438] In some implementations, the first representation is located 1428 within the first text input element.
[0439] According to a determination that the text input includes the first representation, and in response to a first user interaction with a first region of the first text card that includes the first representation, the computing device 200 visually highlights 1430 a first portion of the first data visualization that corresponds to the first time span. The method enhances the user experience and provides improved visual feedback to the user by coordinating the text commentary in the text card with adjacent visualization cards.
[0440] In some implementations, the first user interaction includes a user hovering a mouse cursor over the text input. In some implementations, the first user interaction includes a mouse hover action over a text input element of the first text card.
[0441] In some implementations, the computing device 200 visually highlights a first portion of the first data visualization in real time when a user interacts with (e.g., while interacting with or as) a first region of the first text card.
[0442] In some implementations, visually emphasizing the first portion of the first data visualization includes displaying the first portion of the first data visualization in bold, increasing line thickness, using a different color, highlighting, or adding a frame around the first portion, which is visually distinct from other portions of the first data visualization that do not map to the first time span.
[0443] In some implementations, in parallel with visually highlighting the first portion of the first data visualization, the computing device 200 visually de-emphasizes 1432 other portions of the first data visualization that do not correspond to (e.g., do not map to) the first time span shown in the first representation. By visually de-emphasizing portions of the data visualization that are not related to the textual commentary in the adjacent text card, the method enhances the user experience and provides improved visual feedback to the user.
[0444] In some implementations, visually deemphasizing other portions of the first data visualization includes graying out the other portions or omitting the other portions from display in the first data visualization. In some implementations, visually deemphasizing other portions of the first data visualization includes obscuring the other portions in the display (e.g., by applying a filter (e.g., a fogged filter) or a mask that is at least semi-opaque to obscure the other portions of the first data visualization).
[0445] In some implementations, the first data visualization is a line chart (e.g., a line plot), and visually deemphasizing other portions of the first data visualization includes reducing a thickness of portions of the line chart that do not correspond to the first time span.
[0446] In some implementations, visually highlighting the first portion of the first data visualization includes displaying a portion of the line chart that corresponds to the first timespan (e.g., only the first portion and no other portions) (e.g., omitting from display other portions of the line chart that do not correspond to the first timespan) (1434).
[0447] 22C , in some implementations, the computing device 200 receives, via the first text card, a user selection of a second user interface element to link the first text card to a second visualization card (1436). The computing device 200 determines that a first time span included in the first representation intersects with the time domain of a second data visualization (on the second visualization card) (1438). The computing device 200 receives a second user interaction (e.g., a mouse hover) with a first region of the first text card (1440). In response to the second user interaction, the computing device 200 simultaneously visually highlights (1442) (i) a first portion of the first data visualization and (ii) a second portion of the second data visualization, where the first and second portions correspond to the first time span.
[0448] 22D, in some implementations, the text input includes a second representation (1444) that is different from the first representation (e.g., a representation that includes a time element, a phrase, or a sub-sentence). The second representation includes a second time span.
[0449] In some implementations, the second representation is located 1446 within a second text input element.
[0450] In some cases, the user input includes multiple representations of time (e.g., time expressions), each in a separate text input element in the text card.
[0451] In some instances, the computing device 200 receives (1448) a user selection of a second user interface element via the first text card to link the first text card to a second visualization card.
[0452] The computing device 200 determines 1450 that the second representation intersects with the time domain of the second data visualization. The computing device 200 receives 1452 a second user interaction with a second region of the first text card that includes the second representation (e.g., the second region does not include the first time span or the user does not link the second region to the first visualization card). In response to the second user interaction, the computing device 200 simultaneously (i) visually highlights a portion of the second data visualization that corresponds to the second time span and (ii) displays the first data visualization as a whole (1454).
[0453] 23A-23H provide a flowchart of a method 1500 for presenting time series metrics, according to some implementations. The method 1500 may also be referred to as a process.
[0454] The method 1500 is performed 1502 on a computing device 200 having a display 208, one or more processors 202, and a memory 206. The memory 206 stores 1504 one or more programs configured to be executed by the one or more processors 202. In some implementations, the operations illustrated in Figures 1A, 1B, 4A-4H, 5A-5I, 6A-6F, 7A-7D, 8A-8D, 9, 10A-10K, 11A-11J, 12A-12K, 13A-13H, 14A-14H, 15A-15H, 16A-16N, and 17A-17D correspond to instructions stored in the memory 206 or other non-transitory computer-readable storage medium. The computer-readable storage medium may include a magnetic or optical disk storage device, a solid-state storage device such as flash memory, or other non-volatile memory device. In some implementations, the instructions stored on the computer-readable storage medium include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1500 may be combined and / or the order of some operations may be changed.
[0455] The computing device 200 displays 1506 in the graphical user interface a canvas area including a first scene 118. The first scene has a first visualization card.
[0456] In some implementations, the first visualization card is a blank card that does not include any data visualization. In some implementations, the first visualization card encompasses (e.g., displays or includes) a data visualization.
[0457] In some implementations, the computing device 200 generates 1508 one or more data visualizations. In some implementations, generating the one or more data visualizations includes retrieving 1610, for each data visualization of the one or more data visualizations, a metric definition for each metric corresponding to the respective data visualization. In some implementations, generating the one or more data visualizations includes retrieving 1610, for each data visualization of the one or more data visualizations, data corresponding to the metric.
[0458] In some implementations, the metric definition includes information that the computing device 200 uses to build a visualization of the metric. In other words, rather than retrieving a static, previously saved, older version of the data visualization itself, the computing device 200 builds the data visualization using the metric definition and / or data corresponding to the most recent metric. This approach is therefore advantageous compared to existing methods (and systems) that rely on "static" charts with data that is "frozen in time" at the time the chart is created.
[0459] The computing device 200 displays 1512 in the graphical user interface the recommendation region 104 including one or more data visualizations. Each data visualization of the one or more data visualizations corresponds to a respective metric of the one or more metrics for the data source. Each metric has a respective time attribute (e.g., time). In some implementations, the metrics span different time periods and have different time granularities.
[0460] The computing device 200 receives 1514 a user selection to add a first data visualization corresponding to a first metric of the one or more metrics to the first visualization card. For example, in some implementations, the user selection includes a user selection of an “Add to Card” icon 450-1.
[0461] In some instances, the first data visualization is a line chart (1516).
[0462] In some instances, the first data visualization includes a time series axis having values from a start date / time value to an end date / time value (1518).
[0463] In some implementations, in response to the user selection, the computing device 200 updates (1520) the display of the first visualization card to include (e.g., add) the first data visualization.
[0464] In some implementations, the first visualization card is initially a blank card that does not include any data visualization, and updating the display of the first visualization card to include the first data visualization includes populating the blank visualization card with the first data visualization.
[0465] In some implementations, the first visualization card includes an existing data visualization, and updating the display of the first visualization card to include the first data visualization includes updating the display of the first visualization card from the existing data visualization to the first data visualization (e.g., replacing the existing data visualization with the first data visualization).
[0466] In some instances, after updating the display of the first visualization card to include the first data visualization, computing device 200 receives a user interaction with the first visualization card (e.g., a mouse click on a margin or region of the visualization card, such as the top margin or region) (1522). The user interaction specifies a division point on the time series axis of the first data visualization (e.g., division point 568 shown in FIG. 12A). In response to the user interaction, computing device 200 displays a plurality of user-selectable interface elements (e.g., filter icons 570-1 through 570-5 shown in FIG. 12B) for filtering the date-time range of the first data visualization (1524). The plurality of user-selectable interface elements include one or more of: (i) a first user-selectable interface element that, when selected, holds (e.g., on the first visualization card) data points of the first data visualization before the division point (e.g., to the left of the division point); (ii) a second user-selectable interface element that, when selected, holds data points of the first data visualization after the division point (e.g., to the right of the division point); and (iii) a third user-selectable interface element that, when selected, (a) holds, on the first visualization card, data points of the first data visualization before the division point, and (b) displays, on a second visualization card adjacent to the first visualization card (e.g., the second visualization card is immediately to the right of the first visualization card) data points of the first data visualization after the division point (1526).
[0467] The method enhances the user experience by presenting the user with a group of icons that assist the user in the process of retaining or dividing the data visualization on the visualization card. Providing visual feedback to the user (e.g., in response to a user selection of an icon) improves device usability and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0468] In some instances, the computing device 200 receives (1528) a user selection of a first user-selectable interface element (e.g., first action icon 570-1 in FIG. 12B ). In response to the user selection, the computing device 200 generates (1530) an updated first data visualization (e.g., modifies the first data visualization) including an updated time series axis with values from (i) a starting date / time value to (ii) a date / time value corresponding to the division point. In some implementations, the updated data visualization includes the starting date / time value and the date / time value corresponding to the division point. The computing device 200 displays (1532) the updated first data visualization on the first visualization card. This is shown in FIGS. 12C and 12D . Providing visual feedback to the user (e.g., in response to a user selection of an icon) can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0469] In some implementations, generating the updated first data visualization includes modifying the first data visualization. In some implementations, generating the updated first data visualization includes taking an existing (e.g., initial) first data visualization and scaling and / or transforming it in some manner (e.g., without having to build the updated data visualization from scratch).
[0470] In some implementations, when date / time filtering occurs, the computing device retains the filtered data but re-renders the data visualization (e.g., a chart or line graph) without the filtered date / time span. In other words, date / time filtering adjusts the time domain of the line chart. The initial data of the data visualization is retained, and the filtered portion is not displayed.
[0471] In some instances, the computing device 200 receives (1534) a user selection of a second user-selectable interface element (e.g., second action icon 570-2 in FIG. 12B ). In response to the user selection, the computing device 200 generates (1536) an updated first data visualization including an updated time series axis with values from (i) a date / time value corresponding to the division point to (ii) an end date / time value. In some implementations, the updated first data visualization includes a date / time value corresponding to the division point. In some implementations, the updated first data visualization includes an end date / time value. The computing device 200 displays (1538) the updated first data visualization on the first visualization card. This is shown in FIGS. 12G and 12H. Providing visual feedback to the user (e.g., in response to a user selection of an icon) can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0472] In some instances, computing device 200 receives (1540) a user selection of a third user-selectable interface element (e.g., third action icon 570-3 in FIG. 12B ). In response to the user selection, computing device 200 generates (1542) an updated first data visualization including an updated time series axis with values from (i) the start date / time value to a first date / time value corresponding to the division point. Computing device 200 generates (1544) a second data visualization including an updated time series axis with values from (ii) the first date / time value to (ii) the end date / time value. Computing device 200 simultaneously displays (1546) (i) the updated first data visualization on the first visualization card and (ii) the second data visualization on a second visualization card adjacent to the first visualization card. This is shown in Figures 12I, 12J, and 12K. Providing visual feedback to the user (e.g., in response to user selection of an icon) can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0473] In some cases, after updating the display of the first visualization card to include the first data visualization, the computing device 200 receives a user interaction with the first data visualization on the first visualization card (1548). For example, in some implementations, the user interaction includes a user selection (e.g., via a mouse click) on a first portion of the first data visualization, holding a mouse button, and performing a dragging motion (e.g., horizontally) while holding the mouse button (e.g., a brushing action).
[0474] In some implementations, the user interaction specifies (1550) a date / time range on the timeline axis of the first data visualization.
[0475] In some cases, the date / time range specified via user interaction is from a first date / time value to a second date / time value (1552). For example, in some implementations, the first date / time value is a value that follows (e.g., is later than) the start date / time value. In some implementations, the second date / time value is a value that follows (e.g., is earlier than) the end date / time value.
[0476] In some implementations, in response to the user interaction from step 1548, the computing device 200 displays a plurality of user-selectable interface elements (e.g., brushing icons 606-1 and 606-2 in FIGS. 13B and 13C ) for filtering the date / time range of the first data visualization (1554). The plurality of user-selectable interface elements includes a first user-selectable interface element (e.g., first brushing icon 606-1 in FIG. 13B ) that, when selected, holds data points of the first data visualization that are within the date / time range (e.g., within the brushed area) specified via the user interaction (1556). The plurality of user-selectable interface elements includes a second user-selectable interface element (e.g., second brushing icon 606-2 in FIG. 13B ) that, when selected, holds data points of the first data visualization that are outside the date / time range (e.g., outside the brushed area) specified via the user interaction. For example, user selection of a second user-selectable interface element causes areas outside the brushed area to be displayed (e.g., in two adjacent visualization cards). The method enhances the user experience by presenting the user with a group of icons that assist the user in the process of filtering the date / time range of a data visualization.
[0477] In some implementations, in response to a user selection of a first user-selectable interface element (e.g., first brushing icon 606-1 in FIG. 13B ), the computing device 200 generates (1558) an updated first data visualization including an updated time series axis with values from a first date / time value to a second date / time value. The computing device 200 displays (1560) the updated first data visualization on a first visualization card. This is shown in FIGS. 13C and 13D . Providing visual feedback to the user (e.g., in response to the user selection of the icon) improves device usability and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and reducing user errors when operating / interacting with the device).
[0478] In some implementations, in response to a user selection of a second user-selectable interface element (e.g., the second brushing icon 606-2 in FIG. 13B ), the computing device 200 generates an updated first data visualization (1562) including an updated time series axis having values from a start date / time value to a first date / time value. The computing device 200 generates a second data visualization (1564) including a time series axis having values from a second date / time value to an end date / time value. The computing device 200 simultaneously displays (1566) (i) the updated first data visualization on the first visualization card and (ii) the second data visualization on a second visualization card adjacent to the first visualization card. This is shown in FIGS. 13F, 13G, and 13H. Providing visual feedback to the user (e.g., in response to a user selection of an icon) can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0479] In some instances, the computing device 200 receives 1568 a user interaction with a vertical axis of a first data visualization in a first visualization card. In response to the user interaction, the computing device 200 displays 1570 a plurality of user-selectable interface elements. The plurality of user-selectable interface elements includes 1572 a first user-selectable interface element (1) that, when selected, toggles between (i) a first vertical axis scale starting from zero (e.g., having values from zero to a maximum value) and (ii) a second vertical axis scale starting from a minimum value (e.g., having values from a minimum value to a maximum value). The plurality of user-selectable interface elements includes 1573 a second user-selectable interface element (2) that, when selected, toggles between (i) a third vertical axis scale having absolute values and (ii) a fourth vertical axis scale having relative values indexed relative to a first value (e.g., a y-coordinate value) appearing in the first data visualization.
[0480] In some instances, after updating the display of the first visualization card to include the first data visualization, the computing device 200 receives user interaction with the timeline axis of the first data visualization on the first visualization card (1574). In response to the user interaction, the computing device 200 displays multiple user-selectable interface elements (e.g., x-axis icons 536-1 and / or 536-2 in FIG. 11C ) (1576). The multiple user-selectable interface elements include a first user-selectable interface element (e.g., first x-axis icon 536-1 in FIG. 11C ) that, when selected, toggles between (i) a first timeline axis scale having absolute date / time values (e.g., absolute chronological dates and / or times) and (ii) a second timeline axis scale having dates relative to the first date in the first data visualization (1578). The method enhances the user experience by presenting the user with a group of icons that assist the user in the process of transforming the time domain of a data visualization.
[0481] In some implementations, after updating the display of the first visualization card to include the first data visualization, and when the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having the second data visualization, the computing device performs a step (1580) including, in response to a user selection of a time series axis of the second data visualization, the computing device 200 displaying a user-selectable element (e.g., the second x-axis icon 536-2 in FIG. 11C ) (1582). The computing device 200 receives a user selection of the user-selectable element (1584). In response to the user selection of the user-selectable element, the computing device 200 generates an updated second data visualization (1586) having an updated time series axis with data values that match (e.g., correspond to, synchronize) with the data values of the time series axis of the first data visualization. The computing device 200 displays 1588 the updated second data visualization. Providing visual feedback to the user (e.g., in response to the user selection of an icon) can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0482] In some implementations, after updating the display of the first visualization card to include the first data visualization, and when the first scene includes a second visualization card adjacent to (e.g., to the right of or immediately to the right of) the first visualization card, and the second visualization card has a second data visualization, the computing device performs (1590) a step including, in response to a user selection of a vertical axis of the second data visualization, the computing device 200 displays (1592) a user-selectable element (e.g., the third y-axis icon 534-3 in FIG. 11C ). The computing device 200 receives (1594) a user selection of the user-selectable element. In response to the user selection of the user-selectable element, the computing device 200 generates (1596) an updated second data visualization having an updated vertical axis with data values that match (e.g., correspond, synchronize) with the data values of the vertical axis of the first data visualization. The computing device 200 displays (1598) the updated second data visualization. Providing visual feedback to the user (e.g., in response to the user selection of an icon) improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user achieve the intended result by providing feedback indicating the input that caused the device to produce the intended result and by reducing user errors when operating / interacting with the device).
[0483] 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 sets 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; thus, various subsets of these modules may be combined or otherwise reconfigured in various implementations. In some implementations, the memory stores a subset of the above-identified modules and data structures. Additionally, the memory may store additional modules or data structures not described above.
[0484] The terms used in the description of the invention herein are merely for the purpose of describing particular implementations and are not intended to limit the invention. As 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 "comprises" and / or "comprising," as used herein, specify the presence of stated features, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups thereof.
[0485] As used herein, the phrase "based on" does not mean "based only on," unless expressly specified otherwise. In other words, the phrase "based on" describes both "based only on" and "based at least on."
[0486] The term "exemplary" as used herein means "serving as an example, instance, or illustration" and does not necessarily imply preference or superiority of the example over other configurations or implementations.
[0487] As used herein, the term "and / or" includes any combination of the listed elements. For example, "A, B, and / or C" includes the following sets of elements: A only, B only, C only, A and B without C, A and C without B, B and C without A, and combinations of all three elements A, B, and C.
[0488] The foregoing description has been described with reference to specific implementations for purposes of explanation. However, the above illustrative description 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 to best explain the principles of the invention and its practical application, and to thereby enable those skilled in the art to best utilize the invention and its various implementations, with various modifications suited to the particular uses contemplated.
Claims
1. 1. A method for recommending visualizations for interactive presentation of time series metrics, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, identifying a plurality of metrics corresponding to one or more data sources, each metric of the plurality of metrics having a respective time attribute; receiving a first user input to add a data visualization to a first visualization card in a first scene of the interactive presentation; in response to the first user input and in accordance with a determination that the first scene is an initial scene to be added to a canvas area of a graphical user interface; calculating, for each metric of said plurality of metrics, a respective parameter measuring the variability of values of said respective metric; identifying a first subset of metrics from the plurality of metrics based on the calculated parameters; generating a respective data visualization for each metric in the first subset of metrics; displaying a plurality of the generated data visualizations in a recommendation area of the graphical user interface; receiving a user selection of a first data visualization from the plurality of data visualizations, the first data visualization corresponding to a first metric of the first subset of metrics; populating the first visualization card with the first data visualization in response to the user selection; A method comprising:
2. The method of claim 1 , wherein generating the respective data visualizations comprises retrieving metric definitions for metrics corresponding to the respective data visualizations.
3. The method of claim 2 , wherein generating the respective data visualizations comprises retrieving data corresponding to the metrics.
4. The method of claim 1 , wherein the first data visualization is a line chart.
5. receiving, prior to the first user input, a second user input for adding the first visualization card to the first scene; displaying a blank visualization card within the first scene in response to the second user input; further comprising populating the first visualization card with the first data visualization comprises updating the blank visualization card to include the first data visualization; 5. The method according to any one of claims 1 to 4.
6. The method of claim 5 , wherein the first user input comprises a user selection of the blank visualization card.
7. in response to the first user input and in accordance with determining that the canvas area includes a previous scene having a second visualization card having a second data visualization; determining a second metric of the plurality of metrics to which the second data visualization corresponds; determining whether the first subset of metrics includes the second metric; in accordance with a determination that the first subset of metrics includes the second metric, decreasing the priority of the second metric in the first subset; 7. The method of claim 1, further comprising:
8. the plurality of data visualizations are displayed as a list in the recommendation area; and decreasing the priority of the second metric includes changing the order in which the second data visualizations are displayed in the list. The method of claim 7.
9. The step of decreasing the priority of the second metric comprises: excluding the second data visualization from the displayed plurality of data visualizations.
9. The method of claim 7 or 8, comprising:
10. in response to the first user input and in accordance with determining that a second visualization card having a second data visualization and corresponding to a second metric of the plurality of metrics is populated in the first scene; determining one or more metrics corresponding to the second visualization card; identifying a second subset of metrics from the plurality of metrics that excludes the one or more metrics; for each metric in the second subset of metrics, calculating a respective correlation coefficient between (i) the value of the metric and (ii) the data values displayed in the second data visualization; identifying a third metric from the second subset of metrics based on the calculated correlation coefficient; generating a third data visualization corresponding to the third metric; displaying the third data visualization in the recommendation area; 10. The method of claim 1, further comprising:
11. generating the third data visualization corresponding to the third metric, retrieving a metric definition and associated data corresponding to the third metric; generating the third data visualization using the metric definition and the associated data; The method of claim 10, comprising:
12. The method of claim 10 or 11, wherein the second visualization card immediately precedes the first visualization card in the first scene.
13. 13. The method of claim 10, wherein the third metric has the strongest correlation with the second metric among the second subset of metrics.
14. the first data visualization includes data values across a first date / time range; The method comprises: receiving a second user input to add a second visualization card within the first scene after populating the first visualization card with the first data visualization; generating one or more visualization recommendations for the second visualization card in response to the second user input, the one or more visualization recommendations comprising: a first visualization recommendation that filters the values of the first metric to a subset of data values that correspond to a second date / time range that is narrower than the first date / time range; or a second visualization recommendation spanning the time period of said one or more data sources; and 14. The method of any one of claims 1 to 13, further comprising:
15. The method of claim 14 , wherein the subset of data values corresponds to local maxima or minima in the first data visualization.
16. identifying a subset of said data values using a moving average algorithm; generating a first line chart including the subset of data values; displaying the first line chart in the recommendation area; 16. The method of claim 14 or 15, further comprising:
17. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a second data visualization having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the second data visualization in the recommendation area; 17. The method of any one of claims 14 to 16, further comprising:
18. The method of claim 14 , wherein the one or more visualization recommendations include a third visualization recommendation corresponding to a second metric that is different from the first metric.
19. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a second data visualization; displaying the second data visualization in the recommendation area; 19. The method of any one of claims 1 to 18, further comprising:
20. 20. The method of claim 19, wherein the second data visualization is a line chart having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field.
21. 21. The method of claim 19 or 20, wherein the first data visualization and the second data visualization are displayed simultaneously in the recommendation area.
22. receiving a user selection of a second metric of the plurality of metrics in a data schema and filter panel of the graphical user interface; displaying a second data visualization corresponding to the second metric in the recommendation area in response to the user selection; 22. The method of any one of claims 1 to 21, further comprising:
23. receiving a user selection of a second metric and a third metric of the plurality of metrics in a data schema and filter panel of the graphical user interface; In response to the user selection, generating a second data visualization including two lines corresponding to the second metric and the third metric, respectively; displaying the second data visualization in the recommendation area; 23. The method of any one of claims 1 to 22, further comprising:
24. 24. The method of claim 1, wherein each of the plurality of data visualizations is a line graph showing the change in value of the respective metric over a date / time range corresponding to the respective metric.
25. The step of identifying a first subset of metrics comprises: ranking the plurality of metrics in descending order based on the calculated parameters; identifying a first subset of the metrics according to the ranking; 25. The method of any one of claims 1 to 24, comprising:
26. The step of identifying a first subset of metrics comprises: determining that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold; 26. The method of any one of claims 1 to 25, comprising:
27. after populating the first data visualization on the first visualization card, displaying a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; 27. The method of any one of claims 1 to 26, further comprising:
28. receiving user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization in response to the user input and in accordance with a determination that (i) the first data visualization and the second data visualization share a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization; 28. The method of claim 27, further comprising:
29. the first range of values has a first unit of measure; the second range of values has a second unit of measure different from the first unit of measure; 29. The method of claim 28.
30. displaying a legend including the first unit of measure and the second unit of measure along with the single data visualization.
30. The method of claim 29, further comprising:
31. The single data visualization includes: a horizontal axis having the common period; a vertical axis having a range of values common to the first range of values and the second range of values; 31. The method of any one of claims 28 to 30, comprising:
32. Displaying the single data visualization on the first data visualization card.
32. The method of any one of claims 28 to 31, further comprising:
33. 33. The method of claim 32, wherein displaying the single data visualization on the first data visualization card comprises removing the second visualization card from the first scene.
34. each of the first data visualization and the second data visualization is a line graph; the single data visualization is a line graph consisting of two lines; 34. The method of any one of claims 28 to 33.
35. the first data visualization includes a first range of values on a vertical axis; the second data visualization includes a second range of values on the vertical axis that is substantially different from the first range of values; The method comprises: in response to a first user input selecting the vertical axis of the first data visualization, displaying a user-selectable interface element adjacent to the vertical axis of the first data visualization for converting values of the vertical axis from absolute values to relative values; receiving a first user selection of the user-selectable interface element; in response to the first user selection, converting the first range of values to a relative scale relative to a first value in the first data visualization; displaying the user-selectable interface element adjacent to the vertical axis of the second data visualization in response to a second user input selecting the vertical axis of the second data visualization; receiving a second user selection of the user-selectable interface element; in response to the second user selection, converting the second range of values to a relative scale relative to a first value appearing in the second data visualization; receiving a third user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization according to the third user input; 35. The method of any one of claims 27 to 34, further comprising:
36. After populating the first visualization card with the first data visualization, displaying a first text card adjacent to the first visualization card in the first scene.
36. The method of any one of claims 1 to 35, further comprising:
37. receiving, via the first text card, (i) text input from a user and (ii) a user selection of a first user interface element to link the first text card to the first visualization card; determining whether the text input according to the receiving step includes a first time expression that intersects with a time domain of the first visualization card; pursuant to a determination that the text input includes a time representation that intersects with a time domain of the first data visualization, and in response to a first user interaction with a first region of the first text card that includes the first time representation; visually highlighting a first portion of the first data visualization that corresponds to a first time span shown in the first temporal representation; 37. The method of claim 36, further comprising:
38. Concurrently with visually highlighting the first portion of the first data visualization, visually de-emphasizing other portions of the first data visualization.
38. The method of claim 37, further comprising:
39. the first scene includes a second visualization card having a second data visualization; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the first time span included in the text input overlaps with a time domain of the second data visualization; receiving a second user interaction with the first region of the first text card; in response to the second user interaction, simultaneously visually highlighting (i) the first portion of the first data visualization and (ii) a second portion of the second data visualization, the first portion and the second portion corresponding to the first time span shown in the first time representation; 39. The method of claim 37 or 38, further comprising:
40. 40. The method of claim 39, wherein the first text card is positioned between the first visualization card and the second visualization card.
41. the first scene includes a second visualization card having a second data visualization; the text input further includes a second time representation different from the first time representation, the second time representation corresponding to a second time span; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the second time span intersects with a time domain of the second data visualization; receiving a second user interaction with a second region of the first text card that includes the second time representation; simultaneously in response to said second user interaction; (i) visually highlighting a portion of the second data visualization that corresponds to the second time span; (ii) displaying the first data visualization as a whole; Steps and 41. The method of any one of claims 37 to 40, further comprising:
42. 42. The method of claim 41, wherein the first text card is positioned between the first visualization card and the second visualization card.
43. the first text card includes a plurality of text input elements; the text input from the user is received via the plurality of text input elements; 43. The method of claim 41 or 42.
44. the plurality of text input elements includes a first text input element and a second text input element; the first time representation is located within the first text input element; the second time representation is located within the second text input element; 44. The method of claim 43.
45. after populating the first data visualization into the first visualization card, receiving a user interaction with the first visualization card, the user interaction further specifying a division point on a time series axis of the first data visualization; displaying, in response to the user interaction, a plurality of user-selectable interface elements for filtering a date-time range of the first data visualization, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, holds a data point of the first data visualization before the division point; a second user-selectable interface element that, when selected, holds the data points of the first data visualization after the split point; and a third user-selectable interface element that, when selected, (i) retains data points of the first data visualization before the split point on the first visualization card, and (ii) displays data points of the first data visualization after the split point on a second visualization card adjacent to the first visualization card. and 45. The method of any one of claims 1 to 44, further comprising:
46. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) the start date / time value to (ii) a date / time value corresponding to the split point; displaying the updated first data visualization on the first visualization card; 46. The method of claim 45, further comprising:
47. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) a date / time value corresponding to the split point to (ii) the end date / time value; displaying the updated first data visualization on the first visualization card; 47. The method of claim 45 or 46, further comprising:
48. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the third user-selectable interface element; (i) generating an updated first data visualization including an updated time series axis having values from the start date / time value to a first date / time value corresponding to the split point; (ii) generating a second data visualization including a time series axis having values from the first date / time value to (ii) the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 48. The method of any one of claims 45 to 47, further comprising:
49. after populating the first data visualization on the first visualization card, receiving a user interaction with the first data visualization on the first visualization card, the user interaction further specifying a date / time range on a timeline axis of the first data visualization; displaying, in response to the user interaction, a plurality of user-selectable interface elements for filtering a date-time range of the first data visualization, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, preserves data points of the first data visualization within the date / time range specified via the user interaction; a second user-selectable interface element that, when selected, preserves data points of the first data visualization that are outside the date / time range specified via the user interaction; and Including steps and 49. The method of any one of claims 1 to 48, further comprising:
50. the date / time range is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the first date / time value to a second date / time value; displaying the updated first data visualization on the first visualization card; 50. The method of claim 49, further comprising:
51. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; the date / time range is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the start date / time value to the first date / time value; generating a second data visualization including a time series axis having values from the second date / time value to the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 51. The method of claim 49 or 50, further comprising:
52. after populating the first data visualization into the first visualization card, receiving a user interaction with a vertical axis of the first data visualization in the first visualization card; displaying a plurality of user-selectable interface elements in response to the user interaction, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first vertical axis scale starting from zero and (ii) a second vertical axis scale starting from a minimum value; a first user-selectable interface element that, when selected, toggles between (i) a third vertical axis scale having absolute values and (ii) a fourth vertical axis scale having relative values indexed relative to a first value appearing in the first data visualization; Including steps and 52. The method of any one of claims 1 to 51, further comprising:
53. after populating the first data visualization into the first visualization card, receiving a user interaction with a time series axis of the first data visualization in the first visualization card; displaying a plurality of user-selectable interface elements in response to the user selection, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first time series axis scale having absolute date / time values and (ii) a second time series axis scale having dates relative to a first date in the first data visualization; Including steps and 53. The method of any one of claims 1 to 52, further comprising:
54. After populating the first data visualization onto the first visualization card, and in accordance with a determination that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization, displaying a user-selectable element in response to a user selection of a time series axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated time series axis with data values that match the data values of the time series axis of the first data visualization; displaying the updated second data visualization; and 54. The method of any one of claims 1 to 53, further comprising:
55. After populating the first data visualization onto the first visualization card, and in accordance with a determination that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization, displaying a user-selectable element in response to a user selection of a vertical axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated vertical axis with data values that match the data values of the vertical axis of the first data visualization; displaying the updated second data visualization; and 55. The method of any one of claims 1 to 54, further comprising:
56. the first visualization card is displayed in the first scene within the canvas area; The method further comprises: a recommendation area including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of a data source, each metric having a respective time attribute; a scene summary, for each scene of the one or more scenes, a count of each of the visualization cards corresponding to said scene; a count of each of the text cards corresponding to said scene; a count of each of the unique metrics corresponding to the scene; and Each cumulative time span corresponding to said scene Scene summary including 56. The method of any one of claims 1 to 55, further comprising the step of displaying:
57. 57. The method of claim 56, wherein each cumulative time span is displayed as a graphical element having a length proportional to the cumulative time span.
58. the one or more data visualizations include a second data visualization having a first temporal granularity; The method comprises: receiving a user designation of a second temporal granularity for the second data visualization, the second temporal granularity being different from the first temporal granularity; updating the data marks in the second data visualization to include a subset of data marks corresponding to the second temporal granularity according to the user specification; 58. The method of claim 56 or 57, further comprising:
59. 60. The method of claim 58, wherein the user specification comprises a user selection of a user interface element in a data schema and filter panel of the graphical user interface that corresponds to the second time granularity.
60. Displaying a plurality of metrics in a data schema and filter panel of the graphical user interface.
60. The method of any one of claims 56 to 59, further comprising:
61. the plurality of metrics corresponds to one or more data sources; The method comprises: determining start and end dates corresponding to the plurality of metrics from the one or more data sources; displaying the start date and the end date in the data schema and filter panel; 61. The method of claim 60, further comprising:
62. the one or more data visualizations include a second data visualization having a time axis domain that includes the start date and the end date; The method comprises: receiving user input modifying at least one of the start date or the end date; According to the user input, modifying the time axis domain of the second data visualization according to the modified at least one of the start date or the end date; displaying an updated second data visualization having the modified time axis domain in the recommendation area; 62. The method of claim 61, further comprising:
63. the second data visualization includes a plurality of data marks including data marks corresponding to the start date and the end date; the updated second data visualization includes a subset of the plurality of data marks filtered according to the modified time axis domain.
63. The method of claim 62.
64. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 1 to 63. Computing devices.
65. 64. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 1 to 63.
66. 1. A method for recommending visualizations for interactive presentation of time series metrics, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, identifying a plurality of metrics corresponding to one or more data sources, each metric of the plurality of metrics having a respective time attribute; receiving a first user input to add a data visualization to a first visualization card in a first scene of the interactive presentation; in response to the first user input and in accordance with a determination that the first scene is an initial scene to be added to a canvas area of a graphical user interface; calculating, for each metric of said plurality of metrics, a respective parameter measuring the variability of values of said respective metric; identifying a first subset of metrics from the plurality of metrics based on the calculated parameters; generating a respective data visualization for each metric in the first subset of metrics; displaying a plurality of the generated data visualizations in a recommendation area of the graphical user interface; receiving a user selection of a first data visualization from the plurality of data visualizations, the first data visualization corresponding to a first metric of the subset of metrics; populating the first visualization card with the first data visualization in response to the user selection; A method comprising:
67. 67. The method of claim 66, wherein generating the respective data visualizations includes retrieving (i) a metric definition for a metric corresponding to the respective data visualization, and / or (ii) data corresponding to the metric.
68. 68. The method of claim 66 or 67, wherein the first data visualization is a line chart.
69. receiving, prior to the first user input, a second user input for adding the first visualization card to the first scene; displaying a blank visualization card within the first scene in response to the second user input; further comprising populating the first visualization card with the first data visualization comprises updating the blank visualization card to include the first data visualization; 69. The method of any one of claims 66 to 68.
70. 70. The method of any one of claims 66 to 69, wherein the first user input comprises a user selection of the blank visualization card.
71. in response to the first user input and in accordance with determining that a second visualization card having a second data visualization and corresponding to a second metric of the plurality of metrics is populated in the first scene; determining one or more metrics corresponding to the second visualization card; identifying a second subset of metrics from the plurality of metrics that excludes the one or more metrics; for each metric in the second subset of metrics, calculating a respective correlation coefficient between (i) the value of the metric and (ii) the data values displayed in the second data visualization; identifying a third metric from the second subset of metrics based on the calculated correlation coefficient; generating a third data visualization corresponding to the third metric; displaying the third data visualization in the recommendation area; 71. The method of any one of claims 66 to 70, further comprising:
72. generating the third data visualization corresponding to the third metric, retrieving a metric definition and associated data corresponding to the third metric; generating the third data visualization using the metric definition and the associated data; 72. The method of claim 71, comprising:
73. 73. The method of claim 71 or 72, wherein the second visualization card immediately precedes the first visualization card in the first scene.
74. 74. The method of any one of claims 71 to 73, wherein the third metric has the strongest correlation with the second metric among the second subset of metrics.
75. the first data visualization includes data values across a first date / time range; The method comprises: receiving a second user input to add a second visualization card within the first scene after populating the first visualization card with the first data visualization; generating one or more visualization recommendations for the second visualization card in response to the second user input, the one or more visualization recommendations comprising: a first visualization recommendation that filters the values of the first metric to a subset of data values that correspond to a second date / time range that is narrower than the first date / time range; or a second visualization recommendation spanning the time period of said one or more data sources; and 75. The method of any one of claims 66 to 74, further comprising:
76. 76. The method of claim 75, wherein the subset of data values corresponds to local maxima or minima in the first data visualization.
77. identifying a subset of said data values using a moving average algorithm; generating a first line chart including the subset of data values; displaying the first line chart in the recommendation area; 77. The method of claim 75 or 76, further comprising:
78. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a third visualization recommendation including a second line chart having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the third visualization recommendation in the recommendation area; and 78. The method of any one of claims 75 to 77, further comprising:
79. 79. The method of any one of claims 75 to 78, wherein the one or more visualization recommendations include a third visualization recommendation corresponding to a second metric that is different from the first metric.
80. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a second data visualization having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the second data visualization in the recommendation area; 80. The method of any one of claims 66 to 79, further comprising:
81. 81. The method of claim 80, wherein the first data visualization and the second data visualization are displayed simultaneously in the recommendation area.
82. receiving a user selection of a second metric of the plurality of metrics in a data schema and filter panel of the graphical user interface; displaying a second data visualization corresponding to the second metric in the recommendation area in response to the user selection; 82. The method of any one of claims 66 to 81, further comprising:
83. receiving a user selection of a second metric and a third metric of the plurality of metrics in a data schema and filter panel of the graphical user interface; In response to the user selection, generating a second data visualization including two lines corresponding to the second metric and the third metric, respectively; displaying the second data visualization in the recommendation area; 83. The method of any one of claims 66 to 82, further comprising:
84. 84. The method of any one of claims 66 to 83, wherein each of the plurality of data visualizations is a line graph showing the change in value of the respective metric over a date / time range corresponding to the respective metric.
85. The step of identifying a first subset of metrics comprises: ranking the plurality of metrics based on the respective calculated parameters; identifying a first subset of the metrics according to the ranking; 85. The method of any one of claims 66 to 84, comprising:
86. The step of identifying a first subset of metrics comprises: determining that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold; 86. The method of any one of claims 66 to 85, comprising:
87. The graphical user interface includes: A data schema and filter panel with multiple metrics, and A canvas area for adding one or more scenes for an interactive presentation Steps to display 87. The method of any one of claims 66 to 86, further comprising:
88. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 66 to 87. Computing devices.
89. 88. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 66 to 87.
90. 1. A method for recommending visualizations for interactive presentation of time series metrics, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, receiving a user selection of one or more data sources; identifying a plurality of metrics corresponding to the one or more data sources, each metric of the plurality of metrics having a respective time attribute; displaying, in a graphical user interface, a canvas area for adding one or more scenes for an interactive presentation; receiving a first user input to add a first data visualization to a first visualization card within a first scene of the interactive presentation; in response to the first user input and in accordance with determining that the canvas area includes a previous scene having a second visualization card having a second data visualization; calculating, for each metric of said plurality of metrics, a respective parameter measuring the variability of values of said respective metric; identifying a first subset of metrics from the plurality of metrics based on the calculated parameters; generating a respective data visualization for each metric in the first subset of metrics; identifying a first metric of the plurality of metrics to which the second data visualization corresponds; determining whether the first subset of metrics includes the first metric; displaying a plurality of the generated data visualizations in a recommendation area of the graphical user interface according to the determination;
91. 91. The method of claim 90, wherein generating the respective data visualizations includes retrieving (i) a metric definition for a metric corresponding to the respective data visualization, and / or (ii) data corresponding to the metric.
92. displaying the plurality of generated data visualizations in accordance with the determination, decreasing the priority of the second metric in the first subset in accordance with a determination that the first subset of metrics includes the second metric.
92. The method of claim 90 or 91, comprising:
93. the plurality of data visualizations are displayed as a list in the recommendation area; and decreasing the priority of the second metric includes changing the order in which the second data visualizations are displayed in the list.
93. The method of claim 92.
94. The step of decreasing the priority of the second metric comprises: excluding the second visualization from the displayed plurality of data visualizations.
94. The method of claim 92 or 93, comprising:
95. receiving a user selection of a first data visualization from the plurality of data visualizations that corresponds to a second metric of the subset of metrics; populating the first visualization card with the first data visualization in response to the user selection; 95. The method of any one of claims 90 to 94, further comprising:
96. the first data visualization includes data values across a first date / time range; The method comprises: receiving a second user input to add a third visualization card within the first scene after populating the first data visualization into the first visualization card; generating one or more visualization recommendations for the third visualization card in response to the second user input, the one or more visualization recommendations comprising: a first visualization recommendation that filters the values of the first metric to a subset of data values that correspond to a second date / time range that is narrower than the first date / time range; or a second visualization recommendation spanning the time period of said one or more data sources; and 96. The method of claim 95, further comprising:
97. 97. The method of claim 96, wherein the subset of data values corresponds to local maxima or minima in the first data visualization.
98. identifying a subset of said data values using a moving average algorithm; generating a first line chart including the subset of data values; displaying the first line chart in the recommendation area; 98. The method of claim 96 or 97, further comprising:
99. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a line chart having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the line chart in the recommendation area; 99. The method of any one of claims 90 to 98, further comprising:
100. the graphical user interface includes a data schema and a filter panel that displays the plurality of metrics; The method comprises: receiving a user selection of a second metric of the plurality of metrics in the data schema and filter panel; displaying a second data visualization corresponding to the second metric in the recommendation area in response to the user selection; 100. The method of any one of claims 90 to 99, further comprising:
101. the graphical user interface includes a data schema and a filter panel that displays the plurality of metrics; The method comprises: receiving a user selection of a second metric and a third metric of the plurality of metrics in the data schema and filter panel; In response to the user selection, generating a second data visualization including two lines corresponding to the second metric and the third metric, respectively; displaying the second data visualization in the recommendation area; 101. The method of any one of claims 90 to 100, further comprising:
102. 102. The method of any one of claims 90 to 101, wherein each of the plurality of data visualizations is a line graph showing the change in value of the respective metric over a date / time range corresponding to the respective metric.
103. The step of identifying a first subset of metrics comprises: ranking the plurality of metrics in an order based on the calculated parameters; identifying a first subset of the metrics according to the ranking; 103. The method of any one of claims 90 to 102, comprising:
104. The step of identifying a first subset of metrics comprises: determining that each metric in the first subset of metrics has a coefficient of variation that exceeds a predetermined threshold; 104. The method of any one of claims 90 to 103, comprising:
105. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 90 to 104. Computing devices.
106. 105. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 90 to 104.
107. A method for presenting time series metrics, 1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, The graphical user interface a canvas area including one or more scenes, the one or more scenes including a first scene having a first visualization card; a recommendation area including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of a data source, each metric having a respective time attribute; a scene summary, for each scene of the one or more scenes, a count of each of the visualization cards corresponding to said scene; a count of each of the text cards corresponding to said scene; a count of each of the unique metrics corresponding to the scene; and Each cumulative time span corresponding to said scene Scene summary including Steps to display A method comprising:
108. 108. The method of claim 107, wherein each cumulative time span is displayed as a graphical element having a length proportional to the cumulative time span.
109. the one or more data visualizations include a first data visualization having a first temporal granularity; The method comprises: receiving a user designation of a second temporal granularity for the first data visualization, the second temporal granularity being different from the first temporal granularity; updating the data marks in the first data visualization to include a subset of data marks corresponding to the second temporal granularity according to the user specification; 109. The method of claim 107 or 108, further comprising:
110. Displaying a data schema and a filter panel in the graphical user interface. further comprising the user specification includes a user selection of a user interface element in the data schema and filter panel that corresponds to the second time granularity; The method of claim 109.
111. Displaying a plurality of metrics in a data schema and filter panel of the graphical user interface.
111. The method of any one of claims 107 to 110, further comprising:
112. the plurality of metrics corresponds to one or more data sources; The method comprises: determining start and end dates corresponding to the plurality of metrics from the one or more data sources; displaying the start date and the end date in the data schema and filter panel; 112. The method of claim 111, further comprising:
113. the one or more data visualizations include a first data visualization having a time axis domain that includes the start date and the end date; The method comprises: receiving user input modifying at least one of the start date or the end date; According to the user input, modifying the time axis domain of the first data visualization according to the modified at least one of the start date or the end date; displaying the updated first data visualization with the modified time axis domain in the recommendation area; 113. The method of claim 112, further comprising:
114. the first data visualization includes a plurality of data marks including data marks corresponding to the start date and the end date; the updated first data visualization includes a subset of the plurality of data marks filtered according to the modified time axis domain. The method of claim 113.
115. 115. The method of claim 113 or 114, wherein the first data visualization is a line chart.
116. receiving a user selection to add a first data visualization corresponding to a first metric to the first visualization card; updating a display of the first visualization card to include the first data visualization in response to the user selection; 116. The method of any one of claims 107 to 115, further comprising:
117. In response to determining that the first data visualization corresponds to a distinct metric within the first scene, updating the scene summary by incrementing the count of each unique metric corresponding to the first scene.
117. The method of claim 116, further comprising:
118. In response to the user selection, updating the scene summary by incrementing the count of each of the visualization cards corresponding to the first scene.
118. The method of claim 116 or 117, further comprising:
119. the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; The method comprises: receiving user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization in response to the user input and in accordance with a determination that (i) the first data visualization and the second data visualization share a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization; 119. The method of any one of claims 116 to 118, further comprising:
120. generating the one or more data visualizations prior to displaying the one or more data visualizations in the recommendation area, identifying a plurality of metrics corresponding to the data source, each metric of the plurality of metrics having a respective time attribute; calculating, for each metric of said plurality of metrics, a respective parameter measuring the variability of values of said respective metric; identifying a subset of metrics from the plurality of metrics based on the calculated parameters; retrieving a respective data visualization for each metric in the subset of metrics; displaying the one or more retrieved data visualizations in the recommendation area; Including steps 120. The method of any one of claims 107 to 119, further comprising:
121. generating the one or more data visualizations includes: pursuant to determining that the canvas area includes a second scene having a second visualization card having a second data visualization; determining a second metric of the plurality of metrics to which the second data visualization corresponds; determining whether the subset of metrics includes the second metric; in accordance with a determination that the subset of metrics includes the second metric, decreasing the priority of the second metric within the subset; 121. The method of claim 120, further comprising:
122. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 107 to 121. Computing devices.
123. 122. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 107 to 121.
124. 1. A method for combining visualization cards in a time series metric presentation, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, The graphical user interface a canvas area containing a first scene, said first scene comprising: a first visualization card having a first data visualization; and a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; The canvas area, including and displaying receiving user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization in response to the user input and in accordance with a determination that (i) the first data visualization and the second data visualization share a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization; The method further comprises:
125. the first range of values has a first unit of measure; the second range of values has a second unit of measure different from the first unit of measure; The method of claim 124.
126. displaying a legend including the first unit of measure and the second unit of measure along with the single data visualization.
126. The method of claim 125, further comprising:
127. The single data visualization includes: a horizontal axis having the common period; a vertical axis having a range of values common to the first range of values and the second range of values; 127. The method of any one of claims 124 to 126, comprising:
128. Displaying the single data visualization on the first visualization card.
128. The method of any one of claims 124 to 127, further comprising:
129. 129. The method of claim 128, wherein displaying the single data visualization on the first data visualization card comprises removing the second visualization card from the first scene.
130. 130. The method of any one of claims 124 to 129, wherein the first visualization card is positioned to the left of the second visualization card in the first scene.
131. each of the first data visualization and the second data visualization is a line graph; 131. The method of any one of claims 124 to 130.
132. 132. The method of claim 131, wherein the single data visualization is a line graph consisting of two lines.
133. in response to the user input and in accordance with a determination that (i) the first data visualization includes a first range of values on a vertical axis and (ii) the second data visualization includes a second range of values on the vertical axis that is substantially different from the first range of values; in response to a first user input selecting the vertical axis of the first data visualization, displaying a user-selectable interface element adjacent to the vertical axis of the first data visualization for converting values of the vertical axis from absolute values to relative values; receiving a first user selection of the user-selectable interface element; In response to the first user selection, converting the first range of values to a relative scale relative to a first value appearing in the first data visualization; displaying the user-selectable interface element adjacent to the vertical axis of the second data visualization in response to a second user input selecting the vertical axis of the second data visualization; receiving a second user selection of the user-selectable interface element; in response to the second user selection, converting the second range of values to a relative scale relative to a first value appearing in the second data visualization; receiving a third user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization according to the third user input; 133. The method of any one of claims 124 to 132, further comprising:
134. Displaying in the graphical user interface a recommendation region including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of a data source, each metric having a respective time attribute.
134. The method of any one of claims 124 to 133, further comprising:
135. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 124 to 134. Computing devices.
136. 135. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 124 to 134.
137. 1. A method for linking text and visualizations in a time series metric presentation, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, Displaying a canvas area in a graphical user interface that includes a first scene, the first scene comprising: a first visualization card having a first data visualization; and a first text card adjacent to the first visualization card; and receiving, via the first text card, (i) text input from a user and (ii) a user selection of a first user interface element to link the first text card to the first visualization card; determining whether the text input according to the receiving step includes a first representation having a first time span that intersects with a time domain of the first data visualization; pursuant to a determination that the text input includes the first expression and in response to a first user interaction with a first region of the first text card that includes the first expression; visually highlighting a first portion of the first data visualization that corresponds to the first time span; A method comprising:
138. Concurrently with visually highlighting the first portion of the first data visualization, visually de-emphasizing other portions of the first data visualization.
138. The method of claim 137, further comprising:
139. 139. The method of claim 137 or 138, wherein the first data visualization is a line chart.
140. Visually enhancing the first portion of the first data visualization may include: displaying a portion of the line chart corresponding to the first time span.
140. The method of claim 139, comprising:
141. the first scene includes a second visualization card having a second data visualization; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the first time span included in the first representation intersects with the time domain of the second data visualization; receiving a second user interaction with the first region of the first text card; in response to the second user interaction, simultaneously visually highlighting (i) the first portion of the first data visualization and (ii) a second portion of the second data visualization, the first portion and the second portion corresponding to the first time span; 141. The method of any one of claims 137 to 140, further comprising:
142. 142. The method of claim 141, wherein the first text card is positioned between the first visualization card and the second visualization card.
143. 143. The method of claim 141 or 142, wherein each of the first data visualization and the second data visualization is a line chart.
144. the first scene includes a second visualization card having a second data visualization; the text input includes a second representation different from the first representation, the second representation including a second time span; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the second representation intersects with the time domain of the second data visualization; receiving a second user interaction with a second region of the first text card that includes the second representation; simultaneously in response to said second user interaction; (i) visually highlighting a portion of the second data visualization that corresponds to the second time span; (ii) displaying the first data visualization as a whole; Steps and 144. The method of any one of claims 137 to 143, further comprising:
145. 145. The method of claim 144, wherein the first text card is positioned between the first visualization card and the second visualization card.
146. the first text card includes a plurality of text input elements; the text input from the user is received via the plurality of text input elements; 146. The method of claim 144 or 145.
147. the plurality of text input elements includes a first text input element and a second text input element; the first representation is located within the first text input element; the second representation is located within the second text input element; The method of claim 146.
148. Displaying in the graphical user interface a recommendation region including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of a data source, each metric having a respective time attribute.
148. The method of any one of claims 137 to 147, further comprising:
149. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 137 to 148. Computing devices.
150. 149. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 137 to 148.
151. 1. A method for presenting time series metrics, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, The graphical user interface a canvas area containing a first scene, the first scene having a first visualization card; and a recommendation area including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of one or more metrics of a data source, each metric having a respective time attribute; and displaying receiving a user selection to add a first data visualization corresponding to a first metric of the one or more metrics to the first visualization card; updating a display of the first visualization card to include the first data visualization in response to the user selection; A method comprising:
152. generating the one or more data visualizations prior to displaying the one or more data visualizations, For each data visualization of the one or more data visualizations, retrieving a metric definition for each of the metrics corresponding to the respective data visualization. Including steps 152. The method of claim 151, further comprising:
153. 153. The method of claim 151 or 152, wherein the first data visualization is a line chart.
154. after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with the first visualization card, the user interaction further specifying a division point on a time series axis of the first data visualization; displaying, in response to the user interaction, one or more user-selectable interface elements for filtering a date-time range of the first data visualization, the one or more user-selectable interface elements comprising: a first user-selectable interface element that, when selected, holds a data point of the first data visualization before the division point; a second user-selectable interface element that, when selected, holds the data points of the first data visualization after the split point; and a third user-selectable interface element that, when selected, (i) retains data points of the first data visualization before the split point on the first visualization card, and (ii) displays data points of the first data visualization after the split point on a second visualization card adjacent to the first visualization card. and 154. The method of any one of claims 151 to 153, further comprising:
155. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) the start date / time value to (ii) a date / time value corresponding to the split point; displaying the updated first data visualization on the first visualization card; 155. The method of claim 154, further comprising:
156. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) a date / time value corresponding to the split point to (ii) the end date / time value; displaying the updated first data visualization on the first visualization card; 156. The method of claim 154 or 155, further comprising:
157. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the third user-selectable interface element; (i) generating an updated first data visualization including an updated time series axis having values from the start date / time value to a first date / time value corresponding to the split point; (ii) generating a second data visualization including a time series axis having values from the first date / time value to (ii) the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 157. The method of any one of claims 154 to 156, further comprising:
158. after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with the first data visualization on the first visualization card, the user interaction further specifying a date / time range on a timeline axis of the first data visualization; displaying, in response to the user interaction, a plurality of user-selectable interface elements for filtering a date-time range of the first data visualization, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, preserves data points of the first data visualization within the date / time range specified via the user interaction; a second user-selectable interface element that, when selected, preserves data points of the first data visualization that are outside the date / time range specified via the user interaction; and Including steps and 158. The method of any one of claims 151 to 157, further comprising:
159. the date / time range specified via the user interaction is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the first date / time value to a second date / time value; displaying the updated first data visualization on the first visualization card; 159. The method of claim 158, further comprising:
160. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; the date / time range is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the start date / time value to the first date / time value; generating a second data visualization including a time series axis having values from the second date / time value to the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 160. The method of claim 158 or 159, further comprising:
161. receiving a user interaction with a vertical axis of the first data visualization in the first visualization card; displaying a plurality of user-selectable interface elements in response to the user interaction, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first vertical axis scale starting from zero and (ii) a second vertical axis scale starting from a minimum value; a second user-selectable interface element that, when selected, toggles between (i) a third vertical axis scale having absolute values and (ii) a fourth vertical axis scale having relative values indexed relative to a first value appearing in the first data visualization; Including steps and 161. The method of any one of claims 151 to 160, further comprising:
162. after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with a time series axis of the first data visualization on the first visualization card; displaying a plurality of user-selectable interface elements in response to the user interaction, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first time series axis scale having absolute date / time values and (ii) a second time series axis scale having dates relative to a first date in the first data visualization; Including steps and 162. The method of any one of claims 151 to 161, further comprising:
163. after updating the display of the first visualization card to include the first data visualization, and in accordance with a determination that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; displaying a user-selectable element in response to a user selection of a time series axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated time series axis with data values that match the data values of the time series axis of the first data visualization; displaying the updated second data visualization; and 163. The method of any one of claims 151 to 162, further comprising:
164. after updating the display of the first visualization card to include the first data visualization, and in accordance with a determination that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; displaying a user-selectable element in response to a user selection of a vertical axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated vertical axis with data values that match the data values of the vertical axis of the first data visualization; displaying the updated second data visualization; and 164. The method of any one of claims 151 to 163, further comprising:
165. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 151 to 164. Computing devices.
166. 165. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 151 to 164.
167. 1. A method for presenting time series metrics, comprising:
1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, The graphical user interface a canvas area containing a first scene, the first scene having a first visualization card; and a recommendation area including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of one or more metrics of a data source, each metric having a respective time attribute; and displaying receiving a user selection to add a first data visualization corresponding to a first metric of the one or more metrics to the first visualization card; updating a display of the first visualization card to include the first data visualization in response to the user selection; A method comprising:
168. generating the one or more data visualizations prior to displaying the one or more data visualizations, retrieving, for each data visualization of the one or more data visualizations, a metric definition for the respective metric corresponding to the respective data visualization and / or data corresponding to the respective metric. Including steps 168. The method of claim 167, further comprising:
169. 169. The method of claim 167 or 168, wherein the first data visualization is a line chart.
170. the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; The method comprises: receiving user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization in response to the user input, in accordance with a determination that (i) the first data visualization and the second data visualization have a common time period and (ii) there is substantial overlap between a first range of values on a vertical axis of the first data visualization and a second range of values on a vertical axis of the second data visualization; 170. The method of any one of claims 167 to 169, further comprising:
171. the first range of values has a first unit of measure; the second range of values has a second unit of measure different from the first unit of measure; The method of claim 170.
172. displaying a legend including the first unit of measure and the second unit of measure along with the single data visualization.
172. The method of claim 171, further comprising:
173. The single data visualization includes: a horizontal axis having the common period; a vertical axis having a range of values common to the first range of values and the second range of values; 173. The method of any one of claims 170 to 172, comprising:
174. Displaying the single data visualization on the first visualization card.
174. The method of any one of claims 170 to 173, further comprising:
175. 175. The method of claim 174, wherein displaying the single data visualization on the first visualization card includes removing the second visualization card from the first scene.
176. each of the first data visualization and the second data visualization is a line graph; the single data visualization is a line graph consisting of two lines; 176. The method of any one of claims 170 to 175.
177. the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization; the first data visualization includes a first range of values on a vertical axis; the second data visualization includes a second range of values on the vertical axis that is substantially different from the first range of values; The method comprises: in response to a first user input selecting the vertical axis of the first data visualization, displaying a user-selectable interface element adjacent to the vertical axis of the first data visualization for converting values of the vertical axis from absolute values to relative values; receiving a first user selection of the user-selectable interface element; in response to the first user selection, converting the first range of values to a relative scale relative to an initial value in the first data visualization; displaying the user-selectable interface element adjacent to the vertical axis of the second data visualization in response to a second user input selecting the vertical axis of the second data visualization; receiving a second user selection of the user-selectable interface element; in response to the second user selection, converting the second range of values to a relative scale relative to a first value appearing in the second data visualization; receiving a third user input to designate merging the first data visualization with the second data visualization; merging the first data visualization and the second data visualization into a single data visualization according to the third user input; 177. The method of any one of claims 167 to 176, further comprising:
178. the first scene includes a first text card adjacent to the first visualization card; The method comprises: receiving, via the first text card, (i) text input from a user and (ii) a user selection of a first user interface element to link the first text card to the first visualization card; determining whether the text input according to the receiving step includes a first time expression that intersects with a time domain of the first visualization card; pursuant to a determination that the text input includes a time representation that intersects with a time domain of the first data visualization, and in response to a first user interaction with a first region of the first text card that includes the first time representation; visually highlighting a first portion of the first data visualization that corresponds to a first time span shown in the first temporal representation; 178. The method of any one of claims 167 to 177, further comprising:
179. Concurrently with visually highlighting the first portion of the first data visualization, visually de-emphasizing other portions of the first data visualization.
179. The method of claim 178, further comprising:
180. the first scene includes a second visualization card having a second data visualization; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the first time span included in the text input overlaps with a time domain of the second data visualization; receiving a second user interaction with the first region of the first text card; in response to the second user interaction, simultaneously visually highlighting (i) the first portion of the first data visualization and (ii) a second portion of the second data visualization, the first portion and the second portion corresponding to the first time span shown in the first time representation; 179. The method of claim 178 or 179, further comprising:
181. 181. The method of claim 180, wherein the first text card is positioned between the first visualization card and the second visualization card.
182. the first scene includes a second visualization card having a second data visualization; the text input further includes a second time representation different from the first time representation, the second time representation corresponding to a second time span; The method comprises: receiving, via the first text card, a user selection of a second user interface element to link the first text card to the second visualization card; determining that the second time span intersects with a time domain of the second data visualization; receiving a second user interaction with a second region of the first text card that includes the second time representation; simultaneously in response to said second user interaction; (i) visually highlighting a portion of the second data visualization that corresponds to the second time span; (ii) displaying the first data visualization as a whole; Steps and 182. The method of any one of claims 178 to 181, further comprising:
183. 183. The method of claim 182, wherein the first text card is positioned between the first visualization card and the second visualization card.
184. the first text card includes a plurality of text input elements; the text input from the user is received via the plurality of text input elements; 184. The method of claim 178 or 183.
185. the plurality of text input elements includes a first text input element and a second text input element; the first time representation is located within the first text input element; the second time representation is located within the second text input element; The method of claim 184.
186. after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with the first visualization card, the user interaction further specifying a division point on a time series axis of the first data visualization; displaying, in response to the user interaction, a plurality of user-selectable interface elements for filtering a date-time range of the first data visualization, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, holds a data point of the first data visualization before the division point; a second user-selectable interface element that, when selected, holds the data points of the first data visualization after the split point; and a third user-selectable interface element that, when selected, (i) retains data points of the first data visualization before the split point on the first visualization card, and (ii) displays data points of the first data visualization after the split point on a second visualization card adjacent to the first visualization card. and 186. The method of any one of claims 167 to 185, further comprising:
187. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) the start date / time value to (ii) a date / time value corresponding to the split point; displaying the updated first data visualization on the first visualization card; 187. The method of claim 186, further comprising:
188. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from (i) a date / time value corresponding to the split point to (ii) the end date / time value; displaying the updated first data visualization on the first visualization card; 188. The method of claim 186 or 187, further comprising:
189. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; The method comprises: in response to a user selection of the third user-selectable interface element; (i) generating an updated first data visualization including an updated time series axis having values from the start date / time value to a first date / time value corresponding to the split point; (ii) generating a second data visualization including a time series axis having values from the first date / time value to (ii) the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 189. The method of any one of claims 186 to 188, further comprising:
190. after updating a display of the first visualization card to include the first data visualization, receiving a user interaction with the first data visualization on the first visualization card, the user interaction further specifying a date / time range on a timeline axis of the first data visualization; displaying, in response to the user interaction, a plurality of user-selectable interface elements for filtering a date-time range of the first data visualization, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, preserves data points of the first data visualization within the date / time range specified via the user interaction; a second user-selectable interface element that, when selected, preserves data points of the first data visualization that are outside the date / time range specified via the user interaction; and Including steps and 190. The method of any one of claims 167 to 189, further comprising:
191. the date / time range is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the first user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the first date / time value to a second date / time value; displaying the updated first data visualization on the first visualization card; 191. The method of claim 190, further comprising:
192. the first data visualization includes a time series axis having values from a start date / time value to an end date / time value; the date / time range is from a first date / time value to a second date / time value; The method comprises: in response to a user selection of the second user-selectable interface element; generating an updated first data visualization including an updated time series axis having values from the start date / time value to the first date / time value; generating a second data visualization including a time series axis having values from the second date / time value to the end date / time value; (i) simultaneously displaying the updated first data visualization on the first visualization card and (ii) simultaneously displaying the second data visualization on a second visualization card adjacent to the first visualization card; 192. The method of claim 190 or 191, further comprising:
193. receiving a user interaction with a vertical axis of the first data visualization in the first visualization card; displaying a plurality of user-selectable interface elements in response to the user interaction, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first vertical axis scale starting from zero and (ii) a second vertical axis scale starting from a minimum value; a first user-selectable interface element that, when selected, toggles between (i) a third vertical axis scale having absolute values and (ii) a fourth vertical axis scale having relative values indexed relative to a first value appearing in the first data visualization; Including steps and 193. The method of any one of claims 167 to 192, further comprising:
194. receiving a user interaction with a time series axis of the first data visualization in the first visualization card; displaying a plurality of user-selectable interface elements in response to the user selection, the plurality of user-selectable interface elements comprising: a first user-selectable interface element that, when selected, toggles between (i) a first time series axis scale having absolute date / time values and (ii) a second time series axis scale having dates relative to a first date in the first data visualization; Including steps and 194. The method of any one of claims 167 to 193, further comprising:
195. In response to determining that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization, displaying a user-selectable element in response to a user selection of a time series axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated time series axis with data values that match the data values of the time series axis of the first data visualization; displaying the updated second data visualization; and 195. The method of any one of claims 167 to 194, further comprising:
196. In response to determining that the first scene includes a second visualization card adjacent to the first visualization card, the second visualization card having a second data visualization, displaying a user-selectable element in response to a user selection of a vertical axis of the second data visualization; receiving a user selection of the user-selectable element; in response to a user selection of the user-selectable element; generating an updated second data visualization having an updated vertical axis with data values that match the data values of the vertical axis of the first data visualization; displaying the updated second data visualization; and 196. The method of any one of claims 167 to 195, further comprising:
197. prior to displaying the one or more data visualizations, and in accordance with a determination that the first scene is an initial scene to be added to the canvas area; identifying a plurality of metrics from the data source; calculating, for each metric of said plurality of metrics, a respective parameter measuring the variability of values of said respective metric; identifying the one or more metrics from the plurality of metrics based on the calculated parameters; generating a respective data visualization for each metric of the one or more metrics; displaying the one or more data visualizations corresponding to the one or more metrics in the recommendation area; 197. The method of any one of claims 167 to 196, further comprising:
198. The step of identifying one or more metrics comprises: ranking the plurality of metrics based on the calculated parameters; identifying the one or more metrics according to the ranking; 200. The method of claim 197, comprising:
199. The step of identifying one or more metrics comprises: determining that each metric in the one or more metrics has a coefficient of variation that exceeds a predetermined threshold; 199. The method of any one of claims 167 to 198, comprising:
200. prior to displaying the one or more data visualizations and in accordance with a determination that the canvas area includes a previous scene, different from the first scene, having a second visualization card with a second data visualization; identifying a plurality of metrics from the data source; determining a second metric of the plurality of metrics to which the second data visualization corresponds; determining whether the one or more metrics includes the second metric; decreasing a priority of the second metric within the one or more metrics in accordance with a determination that the one or more metrics includes the second metric; 200. The method of any one of claims 167 to 199, further comprising:
201. the one or more data visualizations are displayed in the recommendation area as a list; and decreasing the priority of the second metric includes changing the order in which the second data visualizations are displayed in the list. The method of claim 200.
202. The step of decreasing the priority of the second metric comprises: excluding the second visualization from the displayed one or more data visualizations.
202. The method of claim 200 or 201, comprising:
203. the first data visualization includes data values spanning a first date / time range; The method receiving user input to add a second visualization card within the first scene after updating a display of the first visualization card to include the first data visualization; generating one or more visualization recommendations for a second visualization card in response to the user input, the one or more visualization recommendations comprising: a first visualization recommendation that filters the values of the first metric to a subset of data values that correspond to a second date / time range that is narrower than the first date / time range; or A second visualization recommendation spanning the entire time period of said data source. and 203. The method of any one of claims 167 to 202, further comprising:
204. 204. The method of claim 203, wherein the subset of data values corresponds to local maxima or minima in the first data visualization.
205. identifying a subset of said data values using a moving average algorithm; generating a first line chart including the subset of data values; displaying the first line chart in the recommendation area; 205. The method of claim 203 or 204, further comprising:
206. the data source includes a second metric having a categorical data field; The method comprises: generating a second data visualization having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the second data visualization in the recommendation area; 206. The method of any one of claims 203 to 205, further comprising:
207. 207. The method of any one of claims 203 to 206, wherein the one or more visualization recommendations include a third visualization recommendation corresponding to a second metric that is different from the first metric.
208. the one or more data sources include a second metric having a categorical data field; The method comprises: generating a second data visualization having a plurality of lines, each of the lines corresponding to a distinct data value of the categorical data field; displaying the data visualization in the recommendation area; 208. The method of any one of claims 167 to 207, further comprising:
209. 209. The method of claim 208, wherein the first data visualization and the second data visualization are displayed simultaneously in the recommendation area.
210. Displaying in the graphical user interface a data schema and a filter panel including a plurality of metrics from one or more data sources.
209. The method of any one of claims 167 to 209, further comprising:
211. receiving a user selection of a second metric of the plurality of metrics in the data schema and filter panel; displaying a second data visualization corresponding to the second metric in the recommendation area in response to the user selection; 211. The method of claim 210, further comprising:
212. receiving a user selection of a second metric and a third metric of the plurality of metrics in the data schema and filter panel; In response to the user selection, generating a second data visualization including two lines corresponding to the second metric and the third metric, respectively; displaying the second data visualization in the recommendation area; 212. The method of claim 210 or 211, further comprising:
213. 213. The method of any one of claims 167 to 212, wherein each of the one or more displayed data visualizations is a line graph showing the change in value of the respective metric over a date / time range corresponding to the respective metric.
214. In the graphical user interface, for each scene of one or more scenes displayed in the canvas area, a count of each of the visualization cards corresponding to said scene; a count of each of the text cards corresponding to said scene; a count of each of the unique metrics corresponding to the scene; and Each cumulative time span corresponding to said scene Scene summary including 214. The method of any one of claims 167 to 213, further comprising the step of displaying:
215. 215. The method of claim 214, wherein each cumulative time span is displayed as a graphical element having a length proportional to the cumulative time span.
216. the one or more data visualizations include a second data visualization having a first temporal granularity; The method comprises: receiving a user designation of a second temporal granularity for the second data visualization, the second temporal granularity being different from the first temporal granularity; updating the data marks in the second data visualization to include a subset of data marks corresponding to the second temporal granularity according to the user specification; 216. The method of any one of claims 167 to 215, further comprising:
217. 217. The method of claim 216, wherein the user specification includes a user selection of a user interface element in a data schema and filter panel of the graphical user interface that corresponds to the second time granularity.
218. A method for presenting time series metrics, 1. A computing device having a display, one or more processors, and a memory storing one or more programs configured for execution by the one or more processors, The graphical user interface a canvas area including one or more scenes, the one or more scenes including a first scene having a first visualization card; a recommendation area including one or more data visualizations, each data visualization of the one or more data visualizations corresponding to a respective metric of a data source, each metric having a respective time attribute; a scene summary, for each scene of the one or more scenes, a count of each of the visualization cards corresponding to said scene; a count of each of the text cards corresponding to said scene; a count of each of the unique metrics corresponding to the scene; and Each cumulative time span corresponding to said scene Scene summary including The method includes the step of displaying.
219. 219. The method of claim 218, wherein each cumulative time span is displayed as a graphical element having a length proportional to the cumulative time span.
220. the one or more data visualizations include a second data visualization having a first temporal granularity; The method comprises: receiving a user designation of a second temporal granularity for the second data visualization, the second temporal granularity being different from the first temporal granularity; updating the data marks in the second data visualization to include a subset of data marks corresponding to the second temporal granularity according to the user specification; 220. The method of claim 218 or 219, further comprising:
221. 221. The method of claim 220, wherein the user specification includes a user selection of a user interface element in a data schema and filter panel of the graphical user interface that corresponds to the second time granularity.
222. Displaying a plurality of metrics in a data schema and filter panel of the graphical user interface.
222. The method of any one of claims 218 to 221, further comprising:
223. the plurality of metrics corresponds to one or more data sources; The method comprises: determining start and end dates corresponding to the plurality of metrics from the one or more data sources; displaying the start date and the end date in the data schema and filter panel; 223. The method of claim 222, further comprising:
224. the one or more data visualizations include a second data visualization having a time axis domain that includes the start date and the end date; The method comprises: receiving user input modifying at least one of the start date or the end date; According to the user input, modifying the time axis domain of the second data visualization according to the modified at least one of the start date or the end date; displaying an updated second data visualization having the modified time axis domain in the recommendation area; 224. The method of claim 223, further comprising:
225. the second data visualization includes a plurality of data marks including data marks corresponding to the start date and the end date; the updated second data visualization includes a subset of the plurality of data marks filtered according to the modified time axis domain. The method of claim 224.
226. 1. A computing device comprising: The display and one or more processors; a memory coupled to the one or more processors; wherein the memory stores one or more programs configured for execution by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 167 to 225. Computing devices.
227. 226. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computing device, the one or more programs including instructions for performing the method of any one of claims 167 to 225.
Citation Information
Patent Citations
Metrics-aware user interface
US20180089288A1
Data analytics platform with interactive natural language query interface
US20200117740A1
Narration system for interactive dashboards
US20200134037A1
Conversational natural language interfaces for data analysis
WO2022026149A1