IP Library Granted Patent US 12664697
Granted Patent B1
US 12664697 · App. 18/786,217 · Granted Jun 23, 2026

Pixel mapping for heatmap visualizations

Inventors: Justin Wai-Yee De Luna (San Francisco, CA); Jeremy Robert Snyder (Seattle, WA); Eric Allen Wohlstadter (Menlo Park, CA)
Assignee: Cisco Technology, Inc.
G06T11/10G06T11/26
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 12664697
App. No.
18/786,217
Granted
Jun 23, 2026
Kind
B1
Abstract

Techniques, which may be embodied herein as systems, computing devices, methods, algorithms, software, code, computer readable media, or the like, are described herein for generating heatmap visualizations. A heatmap visualization can be a graphical representation of data where the coordinates of a cell in the visualization can be a key that describes a group of data represented by the cell. The colors of a heatmap may indicate information about the data represented by the cell (e.g., the amount of data in the cell). These cells can be rendered by calculating a per-pixel metric rate for each dataset in the heatmap visualization and mapping a dataset's rate onto pixels within the visualization that correspond to the dataset. After this mapping, the maximum rate within the visualization can be used to determine the visualization's colors and the cells can be rendered by coloring each pixel (e.g. pixel row) in its corresponding color.

Claims (108)

1 . A computer-implemented method, comprising:

receiving, by a visualization generation system, a request to display a visualization for a plurality of datasets, the visualization comprising a first axis representing a plurality of timepoints and a second axis representing values associated with a metric, each dataset in the plurality of datasets comprising time information for the dataset, a range of metric values, and a metric count for the dataset;

determining a corresponding color from a plurality of colors for displaying each pixel in the visualization, the corresponding color determined based at least in part on a corresponding metric value for each pixel in the visualization, wherein determining the corresponding color for displaying each pixel in the visualization comprises for a first dataset in the plurality of datasets:

identifying a first timepoint along the first axis based upon a first time information associated with the first dataset;

identifying a columnar area of pixels in the visualization corresponding to the first timepoint, wherein the columnar area has a width of pixels (W) and a height of pixels (H);

identifying, based upon a first range of metric values included in the first dataset, a first portion of the columnar area of pixels for representing the first dataset, wherein the first portion has the width of pixels (W) and a first portion height of pixels (P);

identifying, based upon the first portion height of pixels (P) and a first metric rate associated with the first dataset, a first metric-per-pixel rate associated with the first dataset;

incrementing a first metric value for each pixel in the first portion of the columnar area of pixels by the first metric-per-pixel rate;

identifying the corresponding color for each pixel from the first portion of the columnar area based at least in part on the metric value for each pixel; and

displaying the visualization, wherein the displayed visualization comprises:

the first axis representing the plurality of timepoints and the second axis representing values associated with the metric, and

each pixel in the visualization rendered in the corresponding color.

2 . The method of claim 1 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

identifying a maximum metric value in the visualization and a minimum metric value in the visualization, thereby identifying a metric value range;

segmenting the metric value range into a plurality of metric value subranges based on the plurality of colors, wherein each color in the plurality of colors corresponds to a subrange of the plurality of metric value subranges; and

for each pixel in the visualization:

identifying a corresponding subrange that includes the metric value range, thereby determining the corresponding color from the plurality of colors.

3 . The method of claim 1 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

for a second dataset in the plurality of datasets:

identifying the first timepoint along the first axis based upon a second time information associated with the second dataset;

identifying the columnar area of pixels in the visualization corresponding to the first timepoint;

identifying, based upon a second range of metric values included in the second dataset, a second portion of the columnar area of pixels for representing the second dataset, wherein the second portion has the width of pixels (W) and a second portion height of pixels (P 2 );

identifying, based upon the second portion height of pixels (P 2 ), the width of pixels (W), and a second metric rate associated with the second dataset, a second metric-per-pixel rate associated with the second dataset;

incrementing a second metric value for each pixel in the second portion of the columnar area of pixels by the second metric-per-pixel rate; and

identifying the corresponding color for each pixel from the second portion of the columnar area based at least in part on the metric value for each pixel.

4 . The method of claim 3 , wherein the first portion of pixels and the second portion of pixels overlap on a third portion of pixels, wherein a third metric value for each pixel in the third portion of pixels is a combination of the first metric-per-pixel rate and the second metric-per-pixel rate.

5 . The method of claim 1 , wherein identifying the first metric-per-pixel rate comprises:

identifying the first metric rate associated with the first dataset by dividing the metric count by a time interval between the first timepoint and a subsequent timepoint; and

identifying the first metric-per-pixel rate by dividing the first metric rate by the first portion height of pixels (P).

6 . The method of claim 1 , wherein the height of pixels (H) corresponds to a metric visualization range, and each pixel of the height of pixels (H) in the columnar area corresponds to a metric visualization subrange, wherein identifying the first portion height of pixels (P) comprises:

identifying a maximum dataset value and a minimum dataset value of the range of metric values; and

identifying a maximum pixel and a minimum pixel for the first portion height of pixels (P) based at least in part on the maximum dataset value, the minimum dataset value, and metric visualization subranges for the height of pixels (H).

7 . The method of claim 6 , wherein identifying the maximum pixel comprises:

identifying a first metric visualization subrange that includes the maximum dataset value;

determining a proportion of the first metric visualization subrange that is within the range of metric values;

comparing the proportion of the first metric visualization subrange to a threshold; and

responsive to the proportion exceeding the threshold, identifying a first pixel that corresponds to the first metric visualization subrange as an endpoint of the first portion height of pixels (P).

8 . A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

receiving, by a visualization generation system, a request to display a visualization for a plurality of datasets, the visualization comprising a first axis representing a plurality of timepoints and a second axis representing values associated with a metric, each dataset in the plurality of datasets comprising time information for the dataset, a range of metric values, and a metric count for the dataset;

determining a corresponding color from a plurality of colors for displaying each pixel in the visualization, the corresponding color determined based at least in part on a corresponding metric value for each pixel in the visualization, wherein determining the corresponding color for displaying each pixel in the visualization comprises for a first dataset in the plurality of datasets:

identifying a first timepoint along the first axis based upon a first time information associated with the first dataset;

identifying a columnar area of pixels in the visualization corresponding to the first timepoint, wherein the columnar area has a width of pixels (W) and a height of pixels (H);

identifying, based upon a first range of metric values included in the first dataset, a first portion of the columnar area of pixels for representing the first dataset, wherein the first portion has the width of pixels (W) and a first portion height of pixels (P):

identifying, based upon the first portion height of pixels (P) and a first metric rate associated with the first dataset, a first metric-per-pixel rate associated with the first dataset;

incrementing a first metric value for each pixel in the first portion of the columnar area of pixels by the first metric-per-pixel rate;

identifying the corresponding color for each pixel in the first portion of the columnar area based at least in part on the metric value for each pixel; and

displaying the visualization, wherein the displayed visualization comprises:

the first axis representing the plurality of timepoints and the second axis representing values associated with the metric, and

each pixel in the visualization rendered in the corresponding color.

9 . The computing device of claim 8 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

identifying a maximum metric value in the visualization and a minimum metric value in the visualization, thereby identifying a metric value range;

segmenting the metric value range into a plurality of metric value subranges based on the plurality of colors, wherein each color in the plurality of colors corresponds to a subrange of the plurality of metric value subranges; and

for each pixel in the visualization:

identifying a corresponding subrange that includes the metric value range, thereby determining the corresponding color from the plurality of colors.

10 . The computing device of claim 8 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

for a second dataset in the plurality of datasets:

identifying the first timepoint along the first axis based upon a second time information associated with the second dataset;

identifying the columnar area of pixels in the visualization corresponding to the first timepoint;

identifying, based upon a second range of metric values included in the second dataset, a second portion of the columnar area of pixels for representing the second dataset, wherein the second portion has the width of pixels (W) and a second portion height of pixels (P 2 );

identifying, based upon the second portion height of pixels (P 2 ), the width of pixels (W), and a second metric rate associated with the second dataset, a second metric-per-pixel rate associated with the second dataset;

incrementing a second metric value for each pixel in the second portion of the columnar area of pixels by the second metric-per-pixel rate; and

identifying the corresponding color for each pixel in the second portion of the columnar area based at least in part on the metric value for each pixel.

11 . The computing device of claim 10 , wherein the first portion of pixels and the second portion of pixels overlap on a third portion of pixels, wherein a third metric value for each pixel in the third portion of pixels is a combination of the first metric-per-pixel rate and the second metric-per-pixel rate.

12 . The computing device of claim 8 , wherein identifying the first metric-per-pixel rate comprises:

identifying the first metric rate associated with the first dataset by dividing the metric count by a time interval between the first timepoint and a subsequent timepoint; and

identifying the first metric-per-pixel rate by dividing the first metric rate by the first portion height of pixels (P).

13 . The computing device of claim 8 , wherein the height of pixels (H) corresponds to a metric visualization range, and each pixel of the height of pixels (H) in the columnar area corresponds to a metric visualization subrange, wherein identifying the first portion height of pixels (P) comprises:

identifying a maximum dataset value and a minimum dataset value of the range of metric values; and

identifying a maximum pixel and a minimum pixel for the first portion height of pixels (P) based at least in part on the maximum dataset value, the minimum dataset value, and metric visualization subranges for the height of pixels (H).

14 . The computing device of claim 13 , wherein identifying the maximum pixel comprises:

identifying a first metric visualization subrange that includes the maximum dataset value;

determining a proportion of the first metric visualization subrange that is within the range of metric values;

comparing the proportion of the first metric visualization subrange to a threshold; and

responsive to the proportion exceeding the threshold, identifying a first pixel that corresponds to the first metric visualization subrange as an endpoint of the first portion height of pixels (P).

15 . A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to perform a process comprising:

receiving, by a visualization generation system, a request to display a visualization for a plurality of datasets, the visualization comprising a first axis representing a plurality of timepoints and a second axis representing values associated with a metric, each dataset in the plurality of datasets comprising time information for the dataset, a range of metric values, and a metric count for the dataset;

determining a corresponding color from a plurality of colors for displaying each pixel in the visualization, the corresponding color determined based at least in part on a corresponding metric value for each pixel in the visualization, wherein determining the corresponding color for displaying each pixel in the visualization comprises for a first dataset in the plurality of datasets:

identifying a first timepoint along the first axis based upon a first time information associated with the first dataset;

identifying a columnar area of pixels in the visualization corresponding to the first timepoint, wherein the columnar area has a width of pixels (W) and a height of pixels (H);

identifying, based upon a first range of metric values included in the first dataset, a first portion of the columnar area of pixels for representing the first dataset, wherein the first portion has the width of pixels (W) and a first portion height of pixels (P):

identifying, based upon the first portion height of pixels (P) and a first metric rate associated with the first dataset, a first metric-per-pixel rate associated with the first dataset;

incrementing a first metric value for each pixel in the first portion of the columnar area of pixels by the first metric-per-pixel rate;

identifying the corresponding color for each pixel in the first portion of the columnar area based at least in part on the metric value for each pixel; and

displaying the visualization, wherein the displayed visualization comprises:

the first axis representing the plurality of timepoints and the second axis representing values associated with the metric, and

each pixel in the visualization rendered in the corresponding color.

16 . The non-transitory computer-readable medium of claim 15 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

identifying a maximum metric value in the visualization and a minimum metric value in the visualization, thereby identifying a metric value range;

segmenting the metric value range into a plurality of metric value subranges based on the plurality of colors, wherein each color in the plurality of colors corresponds to a subrange of the plurality of metric value subranges; and

for each pixel in the visualization:

identifying a corresponding subrange that includes the metric value range, thereby determining the corresponding color from the plurality of colors.

17 . The non-transitory computer-readable medium of claim 15 , wherein determining the corresponding color for displaying each pixel in the visualization further comprises:

for a second dataset in the plurality of datasets:

identifying the first timepoint along the first axis based upon a second time information associated with the second dataset;

identifying the columnar area of pixels in the visualization corresponding to the first timepoint;

identifying, based upon a second range of metric values included in the second dataset, a second portion of the columnar area of pixels for representing the second dataset, wherein the second portion has the width of pixels (W) and a second portion height of pixels (P 2 );

identifying, based upon the second portion height of pixels (P 2 ), the width of pixels (W), and a second metric rate associated with the second dataset, a second metric-per-pixel rate associated with the second dataset;

incrementing a second metric value for each pixel in the second portion of the columnar area of pixels by the second metric-per-pixel rate; and

identifying the corresponding color for each pixel in the second portion of the columnar area based at least in part on the metric value for each pixel.

18 . The non-transitory computer-readable medium of claim 17 , wherein the first portion of pixels and the second portion of pixels overlap on a third portion of pixels, wherein a third metric value for each pixel in the third portion of pixels is a combination of the first metric-per-pixel rate and the second metric-per-pixel rate.

19 . The non-transitory computer-readable medium of claim 15 , wherein identifying the first metric-per-pixel rate comprises:

identifying the first metric rate associated with the first dataset by dividing the metric count by a time interval between the first timepoint and a subsequent timepoint; and

identifying the first metric-per-pixel rate by dividing the first metric rate by the first portion height of pixels (P).

20 . The non-transitory computer-readable medium of claim 15 , wherein the height of pixels (H) corresponds to a metric visualization range, and each pixel of the height of pixels (H) in the columnar area corresponds to a metric visualization subrange, wherein identifying the first portion height of pixels (P) comprises:

identifying a maximum dataset value and a minimum dataset value of the range of metric values; and

identifying a maximum pixel and a minimum pixel for the first portion height of pixels (P) based at least in part on the maximum dataset value, the minimum dataset value, and metric visualization subranges for the height of pixels (H).