IP Library Granted Patent US 9,881,396
Granted Patent B2
US 9,881,396 · App. 13/856,116 · Granted Jan 30, 2018

Displaying temporal information in a spreadsheet application

Inventors: B. Scott Ruble (Bellevue, WA); Curtis G. Wong (Medina, WA); Igor Borisov Peev (Arlington, WA); Kevin Fan (Seattle, WA); Jai Srinivasan (Bellevue, WA); Ehab Sobhy (Redmond, WA); Jonathan Edgar Fay (Woodinville, WA)
Assignee: Microsoft Technology Licensing, LLC
G06T11/206G06F3/01G06F3/048G06F3/0481G06F3/0482G06F3/0488G06F3/04815G06F3/04842G06F3/04847G06F17/24G06F17/241G06F17/246G06F17/30056G06F17/30061G06F17/3087G06F17/30241G06F17/30244G06F17/30551G06F17/30554G06F17/30572G06F17/30991G06T13/00G06T15/00G06T15/10G06T19/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,881,396
App. No.
13/856,116
Granted
Jan 30, 2018
Kind
B2
Abstract

Concepts and technologies are described herein for displaying temporal information in a spreadsheet application. In accordance with the concepts and technologies disclosed herein, spreadsheet data can be obtained at a computer system. The spreadsheet data can include data values, temporal information, and geographic information. The computer system can generate a visualization of the spreadsheet data based, at least partially, upon the data values, the temporal information, and the geographic location information. The computer system also can output the visualization.

Claims (65)

1. A computer-implemented method for displaying temporal information in a spreadsheet application, the computer-implemented method comprising performing computer-implemented operations for:

obtaining, at a computer system executing a visualization component, spreadsheet data including data values, the temporal information, and geographic location information;

generating, by the computer system, a visualization of the spreadsheet data based, at least partially, upon the data values, the geographic location information, and the temporal information by

determining if the visualization is to include a time decay in which a data point of the spreadsheet data is persisted beyond a time associated with the data point, and

in response to a determination that the visualization is to include the time decay, determining a duration of the time decay and generating animation frames of the visualization with the time decay;

determining, by the computer system, a time range for the visualization, the time range comprising a duration of time between a start time and an end time;

determining, based upon the time range, an animation speed for the visualization; and

outputting, by the computer system, the visualization.

2. The method of claim 1 , wherein the animation speed is bound to the time range, and wherein generating the visualization based upon the temporal information comprises generating animation frames of the visualization based, at least partially, upon the time range and the animation speed.

3. The method of claim 1 , wherein generating the visualization based upon the temporal information comprises:

determining if the visualization is to include time accumulation whereby a plurality of data values are visually accumulated; and

in response to a determination that the visualization is to include time accumulation, generating animation frames of the visualization using time accumulation.

4. The method of claim 3 , wherein generating the animation frames comprises:

rendering a visualization of data points associated with a location in each of the animation frames;

determining a cumulative value associated with the data points at each of the animation frames; and

rendering a visualization of the cumulative value in each of the animation frames.

5. The method of claim 1 , further comprising:

obtaining geographic mapping data from a geocoding service, the geographic mapping data comprising data mapping the geographic location information to geocoded information; and

obtaining, from a map server, map data corresponding to the geocoded information.

6. The method of claim 5 , wherein generating the visualization comprises generating the visualization based, at least partially, upon the geographic mapping data and the map data.

7. The method of claim 1 , further comprising:

determining if time accumulation is to be shown in the visualization, whereby a plurality of data values are visually accumulated, and wherein generating the visualization comprises generating the visualization based, at least partially, upon the time range, the animation speed, and a determination regarding the time accumulation.

8. The method of claim 7 , wherein determining the time range, the animation speed, and the determination comprises obtaining data from a user computing device, the data comprising input obtained via at least one user interface presented at the user computing device.

9. The method of claim 8 , wherein the user interface comprises

a time control window,

a link to a layer properties window, and

a further link to a time properties window.

10. A computer storage medium having computer readable instructions stored thereon that, when executed by a computer, cause the computer to:

obtain spreadsheet data including data values, temporal information, and geographic location information;

determining, by the computer system, a time range for the visualization, the time range comprising a duration of time between a start time and an end time associated with the temporal information included in the spreadsheet data;

determining, based upon the time range, an animation speed for the visualization, wherein the animation speed is determined, at least partially, based upon the time range;

generate a visualization of the spreadsheet data based, at least partially, upon the data values, the time range, the animation speed, the geographic location information and the temporal information by

determining if the visualization is to include a time decay in which a data point of the spreadsheet data is persisted beyond a time associated with the data point, and

in response to a determination that the visualization is to include the time decay, determining a duration of the time decay and generating animation frames of the visualization with the time decay; and

output the visualization, the visualization comprising the animation frames.

11. The computer storage medium of claim 10 , wherein generating the visualization based upon the temporal information comprises:

determining if the visualization is to include time accumulation whereby a plurality of data values are visually accumulated; and

in response to a determination that the visualization is to include time accumulation, generating the animation frames using time accumulation.

12. The computer storage medium of claim 11 , wherein generating the animation frames using time accumulation comprises:

rendering a visualization of the data values at the data points in each of the animation frames;

determining a cumulative value associated with the data values of the data points at each of the animation frames; and

rendering a visualization of the cumulative value in each of the animation frames.

13. The computer storage medium of claim 10 , further comprising computer readable instructions that, when executed by the computer, cause the computer to generate a user interface comprising a temporal tower visualization of the data in a stacked relationship that represents multiple types of data included in the spreadsheet data.

14. The computer storage medium of claim 10 , further comprising computer readable instructions that, when executed by the computer, cause the computer to:

determine if time accumulation is to be shown in the visualization, whereby a plurality of data values are visually accumulated, and wherein generating the visualization comprises generating the visualization based, at least partially, upon the time range, the animation speed, and a determination regarding the time accumulation.

15. The computer storage medium of claim 14 , wherein determining the time range, the animation speed, and the determination comprises obtaining data from a user computing device, the data comprising input obtained via at least one user interface presented at the user computing device.

16. A computer storage medium having computer readable instructions stored thereon that, when executed by a computer, cause the computer to:

obtain spreadsheet data including data values, temporal information, and geographic location information;

determine a time range for a visualization of the spreadsheet data based upon the spreadsheet data, the time range being defined as a duration of time between a start time and end time associated with the spreadsheet data, the visualization comprising animation frames;

determine, based upon the time range, an animation speed for the visualization, the animation speed being at least partially bound to the time range, wherein changing the time range results in a change to the animation speed;

generate the visualization based, at least partially, upon the data values, the time range, the animation speed, the geographic location information, and the temporal information by

determining if the visualization is to include a time decay in which a data point of the spreadsheet data is persisted beyond a time associated with the data point, and

in response to a determination that the visualization is to include the time decay, determining a duration of the time decay and generating animation frames of the visualization with the time decay; and

output the visualization to a user computing device in communication with the computer.

17. The computer storage medium of claim 16 , wherein generating the visualization based upon the temporal information comprises:

determining if the visualization is to include time accumulation whereby a plurality of data values are visually accumulated; and

in response to a determination that the visualization is to include time accumulation, generating the animation frames using time accumulation, wherein generating the animation frames using time accumulation comprises

rendering a visualization of the data values at the data points in each of the animation frames,

determining a cumulative value associated with the data values of the data points at each of the animation frames, and

rendering a visualization of the cumulative value in each of the animation frames.

18. The computer storage medium of claim 16 , wherein determining the time range, the animation speed, and the determination comprises obtaining data from the user computing device, the data comprising input obtained via at least one user interface presented at the user computing device.

19. The computer storage medium of claim 16 , wherein determining the time range, the animation speed, and the determination comprises obtaining data from the user computing device, the data comprising input obtained via at least one user interface presented at the user computing device, the user interface comprising:

a time control window having a time scrubber for displaying the animation frames;

a link to a layer properties window comprising an option to enable time accumulation whereby a plurality of data values are visually accumulated; and

a further link to a time properties window comprising a control for specifying the animation speed and a further control for specifying the time range.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2013
From: RUBLE, B. SCOTT; WONG, CURTIS G.; PEEV, IGOR BORISOV; FAN, KEVIN; SRINIVASAN, JAI; SOBHY, EHAB; FAY, JONATHAN EDGAR
To: MICROSOFT CORPORATION
Reel/Frame 030176/0248 →
Continuity (2)
Provisional Application 61681851 · Aug 10, 2012
Related Publication 20140047312A1 · Feb 13, 2014