Presentation and comparison of different data groups through a software application is a common experience for computer users. For example, a user may have data series for multiple time periods, such as monthly sales figures per year for multiple years. A user may chart such data series together for comparison, e.g., a chart may show sales figures by month for one year in one color, sales figures by month for another year in a different color, and so on. When comparing just two years of such data, it may be difficult to see the changes, for example, year over year sales increasing in some months and decreasing in other months. It may become even more difficult to see the changes as more data groups are added, e.g., such a chart including sales figures by month for three or more years.
Thus, a user wishing to understand and compare different data groups may have to study and contemplate the data groups and charts thereof for some time, increasing the time and effort for the user. Further, once the user arrives at some understanding of the different data groups, the user may find it challenging to transmit this understanding to others. For example, in presenting the data groups at a meeting, the user may not have time for the audience to also study and contemplate the data groups, so the user may be led to create an abbreviated explanation, which may not lead to the same level of understanding in the audience. The present disclosure appreciates that it may be difficult to see the relationships between different data groups, e.g., how the data changes from one data group to the next.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to exclusively identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
Embodiments are directed to graphically displaying data. A plurality of data sets may be provided, and a user may be presented with options for selection. The options may include selection of one or more data sets from the plurality of data sets. Upon detecting user selection, a plurality of graphic elements may be displayed, which may include a first graphic element that represents data in a first data set and a second graphic element that represents data in a second data set. An animated graphic transition may be displayed in conjunction with the first and second graphic elements to present a data difference between the first and second data sets.
These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory and do not restrict aspects as claimed.
As briefly described above, in graphically displaying data, a plurality of data sets may be provided, and a user may be enabled one or more of the data sets. The data sets may then be graphically presented in an animated fashion that emphasizes changes from one data set to the other employing various schemes.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.
While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments may be practiced with other computer system configurations, including hand-held computing devices such as smart phones, multiprocessor systems, microprocessor-based or programmable consumer electronics such as tablet PCs or special purpose devices, minicomputers, mainframe computers, and comparable computing devices. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Embodiments may be implemented as a computer-implemented process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program that comprises instructions for causing a computer or computing system to perform example process(es). The computer-readable storage medium can for example be implemented via one or more of a volatile computer memory, a non-volatile memory, a hard drive, a flash drive, a floppy disk, or a compact disk, and comparable media.
Throughout this specification, the term “platform” may be a combination of software and hardware components for graphically displaying data. Examples of platforms include, but are not limited to, a hosted service executed over a plurality of servers, an application executed on a single computing device, and comparable systems. The term “server” generally refers to a computing device executing one or more software programs typically in a networked environment. However, a server may also be implemented as a virtual server (software programs) executed on one or more computing devices viewed as a server on the network. More detail on these technologies and example operations is provided below.
Referring to
Diagram 100 represents local computing environment in computing device 102, where an application 104 may enable a user to graphically display data, including an animated graphic transition that may be displayed in conjunction with different graphic elements to represent a data difference, through graphic data display module 106. Computing device 102 may be any computing device including, but not limited to, desktop computers, laptop computers, servers, handheld computers, vehicle mount computers, smart phones, and comparable devices.
Application 104 may be any application capable of graphically displaying data, such as a spreadsheet, a presentation program, a charting program, a web browser for running an interactive chart on a web page, a plotting applet, or the like. For example, graphically displaying data may include creating and displaying a graph, chart, plot, or other presentation. Graphically displaying data may also include selecting or manipulating data in numeric or symbolic form, selecting options for graphically displaying data, and so on. Graphically displaying data is not limited to application 104. Application 104 may enable graphically displaying data using data from another application or device, or controlling another application or device to graphically display data.
Graphic data display module 106 may perform operations associated with graphically displaying data, including providing a plurality of data sets; presenting a plurality of options for selection by a user, including selection of one or more data sets from the plurality of data sets; detecting a user selection from the plurality of options; displaying a plurality of graphic elements representing data in the selected data sets; and displaying one or more animated graphic transitions in conjunction with presenting the graphic elements to represent a data difference between the selected data sets.
Graphic data display module 106 may be a separate application or an integrated part of application 104. Application 104 and/or graphic data display module 106 may control a user interface and provide suitable visual elements for the user to see information associated with available options, make selections, etc.
Diagram 110 illustrates a networked configuration environment. In the example environment, the graphic data display is provided by web application 116 and its graphic data display module 118 executed on server 114. Server 114 may store and retrieve data associated with the plurality of data sets using data store 112. A user may interact with web application 116 through their client application 122 (e.g. a browsing application) executed on computing device 120. Web application 116 and graphic data display module 118 may operate as discussed above. The networked environment may include communications between computing device 120 and server 114 over one or more networks, which may include enterprise networks, cloud-based networks, combinations of those two, and similar ones.
The example systems in
Screenshot 200A illustrates the example spreadsheet application user interface 201 with a first data set 212 “2009 Sales” in column B and a second data set 214 “2010 Sales” in column C. Thus, example spreadsheet application user interface 201 provides a plurality of data sets 212 and 214.
The plurality of data sets may be provided, e.g., by user entry of data into a spreadsheet or database; by accessing data stored locally or in a network in a spreadsheet, database, text file, or other data storage format; by selecting a data feed, e.g., from a scientific instrument, a news service, a stock market data service; or the like. A data set may include at least one series of two or more quantitative, e.g., numerical, data points, for example, a list of prices. A data set may include an implied or explicit index of time or other data, for example, a data set may include a series of twelve prices which imply monthly prices for a year, or the data set may include the series of twelve prices and may also explicitly include a series of the twelve months corresponding to the twelve prices. In the example shown in
Screenshot 200B shows that a user has dragged a selection box 218 over data set 212. In some embodiments, the user may subsequently or simultaneously select data set 214 and/or month index 216 for graphic representation. Thus, example spreadsheet application user interface 201 presents a plurality of options for selection by a user, including selection of a first data set 212 and a second data set 214 from the plurality of data sets. Moreover, example spreadsheet application user interface 201 detects the user's selection 218 from the plurality of options, in this example, first data set 212 from the plurality of data sets.
The graphic elements 302 and 304 are presented in this example as line graphs of sales data versus month, where vertices in the line graphs correspond to individual data points in data sets 212 and 214. Any suitable graphic elements simple or complex may be employed for representing data in the data sets. For example, data points may be represented by text, symbols, graphic icons, bars, pie slices, vertices or inflections in connectors between data points, and so on; and data points may be connected by lines, curves, and so on. Graphic elements may themselves be a collection of individual graphic elements, such as a collection of data points corresponding to the data sets. The graphic elements may be presented with variations, such as in shade, color, fill, line weight, and so on, and may themselves be animated apart from the animated transition described herein. The graphic elements may be presented with gradients, such as in shade, color, fill, line weight, and so on that tend to give the impression of direction, motion, perspective, or the like. Such gradients may be employed to indicate the direction or magnitude of a data difference between data sets.
Referring back to screenshot 200B in
The user selection may be determined based on an active selection, for example, if the user actively clicks on graphic elements 302 or 304, or control buttons 306 or 308, or legend links 310 or 312. The user selection may also be determined by a pointer hovering over one of the plurality of graphic elements, for example, if the user hovers a mouse pointer over graphic elements 302 or 304, or control buttons 306 or 308, or legend links 310 or 312.
In screenshot 300A, the user has selected data set 212 as indicated by the shading over corresponding control button 306. Screenshot 300B illustrates displaying a first animated graphic transition in conjunction with the first and second graphic elements 302 and 304 to represent a data difference between the first and second data sets 212 and 214.
The animated transition, e.g., animated transition between first and second graphic elements 302 and 304, can be any animation which tends to convey, represent, or highlight any data differences between first and second data sets 212 and 214. For example, as shown in
The animated transition and graphic elements, e.g., animated transition between first and second graphic elements 302 and 304 can be displayed in various sequences; repeated or cycled; hidden or displayed; emphasized or deemphasized; and so on.
Screenshots 300A and 300B in
Screenshots 300A and 300B in
In some example embodiments, elements such as arrows shown in screenshots 300A and 300B may convey the direction of animated graphic transition. Other graphic elements may also be displayed that represent a direction of the data difference between the first and second graphic elements. The direction of the data difference may be represented with a symbolic directional indicator, for example: with arrows or lines; or textually, e.g., with plus or minus signs. The direction of the data difference may be represented graphically, e.g., with a change in color, shade, or perspective, such as a color gradient, shade gradient, or perspective gradient; or spatially, e.g., with leading or trailing indicators such as arrows or lines; or the like. For example, arrows such as those shown for the purpose of illustrating
The examples shown in
The examples in
Client applications executed on any of the client devices 511-513 may facilitate communications via application(s) executed by servers 514, or on individual server 516. An application for graphically displaying data executed on one of the servers may facilitate selection of available options such as particular data sets or sources for such data sets. The application may provide information associated with options for displaying the graphic elements representing the data sets and the animated transition that represents the data difference between the data sets as discussed herein. The application for graphically displaying data may retrieve relevant data from data store(s) 519 directly or through database server 518, and provide requested services (e.g. document editing) to the user(s) through client devices 511-513.
Network(s) 510 may comprise any topology of servers, clients, Internet service providers, and communication media. A system according to embodiments may have a static or dynamic topology. Network(s) 510 may include secure networks such as an enterprise network, an unsecure network such as a wireless open network, or the Internet. Network(s) 510 may also coordinate communication over other networks such as Public Switched Telephone Network (PSTN) or cellular networks. Furthermore, network(s) 510 may include short range wireless networks such as Bluetooth or similar ones. Network(s) 510 provide communication between the nodes described herein. By way of example, and not limitation, network(s) 510 may include wireless media such as acoustic, RF, infrared and other wireless media.
Many other configurations of computing devices, applications, data sources, and data distribution systems may be employed to implement a platform providing graphic display of data, including an animated graphic transition that may be displayed in conjunction with first and second graphic elements to represent a data difference, as described herein. Furthermore, the networked environments discussed in
Application 622 may enable users to define or select options for graphically displaying data, including an animated graphic transition that may be displayed in conjunction with first and second graphic elements to represent a data difference, as described herein. Through a user interface controlled by graphic data display module 624, application 622 may display information associated with selectable options including the plurality of data sets or other options associated with displaying the animated transition or the graphic elements corresponding to the data sets. Application 622 and graphic data display module 624 may be separate application or integrated modules of a hosted service. This basic configuration is illustrated in
Computing device 600 may have additional features or functionality. For example, the computing device 600 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Computing device 600 may also contain communication connections 616 that allow the device to communicate with other devices 618, such as over a wired or wireless network in a distributed computing environment, a satellite link, a cellular link, a short range network, and comparable mechanisms. Other devices 618 may include computer device(s) that execute communication applications, web servers, and comparable devices. Communication connection(s) 616 is one example of communication media. Communication media can include therein computer readable instructions, data structures, program modules, or other data. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
Example embodiments also include methods. These methods can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document.
Another optional way is for one or more of the individual operations of the methods to be performed in conjunction with one or more human operators performing some. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program.
Process 700 begins with operation 710, where a plurality of data sets is provided. The plurality of data sets may be provided, e.g., by user entry of data into a spreadsheet or database; by accessing data stored locally or in a network in a spreadsheet, database, text file, or other data storage format; by selecting a data feed, e.g., from a scientific instrument, a news service, a stock market data service; or the like.
At operation 720, a plurality of options is presented for selection by a user, including selection of a first data set and a second data set from the plurality of data sets. Operation 730 includes detecting a user selection from the plurality of options, including the first data set and the second data set. The user selection of the plurality of options can be determined by any suitable detection of user input, such as a user selection of data set from a range of data in a spreadsheet, or a user selection of a graphic or link associated with a data set such as checkbox, a selectable link, a drop-down menu, a radio button, or one of the plurality of graphic elements that represents data in one of the plurality of data sets. Thus, the options may be selected by the user by specifying textual, numerical, or graphic identifiers that correspond to the data sets, for example, icons of data set files in a storage medium, field codes that specify the location of the data sets in a database, names of data set files stored on a hard drive, and so on.
Operation 740 includes displaying a plurality of graphic elements, including a first graphic element that represents data in the first data set and a second graphic element that represents data in the second data set, according to embodiments. Operation 750 includes displaying a first animated graphic transition in conjunction with the first and second graphic elements to represent a data difference between the first and second data sets, according to embodiments.
The operations included in process 700 are for illustration purposes. Providing graphic display of data, including an animated graphic transition that may be displayed in conjunction with first and second graphic elements to represent a data difference may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein.
The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and embodiments.