npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

d3-heatmap2

v1.1.1

Published

A D3.js plugin that produces heatmaps.

Downloads

134

Readme

d3-heatmap2

A D3.js plugin that produces heatmaps.

Heatmap

Example

Click here to check the demo, and source.

Installing

If you use NPM, npm install d3-heatmap2. Otherwise, download the latest release.

Getting Started

<head>
  <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/spiermar/[email protected]/dist/d3-heatmap2.css">
</head>
<body>
  <div id="chart"></div>
  <div id="details"></div>
  <script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script>
  <script src="https://cdn.jsdelivr.net/gh/spiermar/[email protected]/dist/d3-heatmap2.js"></script>
  <script>
    d3.json("data.json", function(error, data) {
        if (error) return console.warn(error)    
        var h = d3.heatmap()
            .width(960)
            .xAxisScale([0,120])
            .yAxisScale([0,2000])
            .colorScale(d3.scaleLinear()
                .domain([0, 65 / 2, 65])
                .range(['#F5F5DC', '#FF5032', '#E50914'])
            )
            
        d3.select("#chart")
            .datum(data)
            .call(h)
    })
  </script>
</body>

Heatmap Data Structure

[
    [1,0,0],
    [0,1,0],
    [0,0,1]
]

API Reference

# heatmap.title([title])

Heatmap title. Defaults to empty if not set. If called with no arguments, title will return the heatmap title.

# heatmap.subtitle([subtitle])

Heatmap subtitle. Defaults to empty if not set. If called with no arguments, subtitle will return the heatmap subtitle.

# heatmap.legendLabel([label])

Heatmap label legend. Defaults to empty if not set. If called with no arguments, legendLabel will return the heatmap label legend.

# heatmap.width([width])

Heatmap width in px. Defaults to 960px if not set. If called with no arguments, width will return the heatmap width.

# heatmap.margin([object])

Heatmap title. Defaults to the values below if not set.

{
    top: 20,
    right: 0,
    bottom: 0,
    left: 0
}

If called with no arguments, margin will return the heatmap margin object.

# heatmap.colorScale([function])

Replaces the built-in color scale function. The scale function takes no arguments, and returns a d3.scale function. Example:

heatmap.colorScale(d3.scaleLinear()
    .domain([0, 65 / 2, 65])
    .range(['#FFFFFF', '#ff5032', '#e50914'])
);

If called with no arguments, colorScale will return the heatmap colorScale function.

# heatmap.xAxisScale([array])

Heatmap xAxis scale domain, in a value scale array format. Defaults to null if not set, which displays the xAxis labels instead of the scale.

heatmap.xAxisScale([0, 1000]);

If called with no arguments, xAxisScale will return the heatmap xAxis scale domain array.

# heatmap.yAxisScale([array])

Heatmap yAxis scale domain, in a value scale array format. Defaults to null if not set, which displays the yAxis labels instead of the scale.

heatmap.yAxisScale([0, 100]);

If called with no arguments, yAxisScale will return the heatmap yAxis scale domain array.

# heatmap.xAxisScaleTicks([integer])

If using xAxisScale, defines the number of scale ticks. Defaults to 20 if not set.

If called with no arguments, xAxisScaleTicks will return the number of ticks in the xAxis scale.

# heatmap.yAxisScaleTicks([integer])

If using yAxisScale, defines the number of scale ticks. Defaults to 20 if not set.

If called with no arguments, yAxisScaleTicks will return the number of ticks in the yAxis scale.

# heatmap.xAxisLabelFormat([function])

Heatmap xAxis label formatter function. The label formatter function takes a single argument, the label array value, and returns a label string. Defaults to function (d) { return d } if not set, which displays the value in the xAxis labels array.

heatmap.xAxisLabelFormat(function (d) { return d + ' sec' });

If called with no arguments, xAxisLabelFormat will return the heatmap xAxis label formatter function.

# heatmap.yAxisLabelFormat([function])

Heatmap yAxis label formatter function. The label formatter function takes a single argument, the label array value, and returns a label string. Defaults to function (d) { return d } if not set, which displays the value in the yAxis labels array.

heatmap.yAxisLabelFormat(function (d) { return d + ' bucket' });

If called with no arguments, yAxisLabelFormat will return the heatmap yAxis label formatter function.

# heatmap.xAxisTickFormat([function])

Heatmap xAxis tick format function. The tick format function takes a single argument, the tick value, and returns a formatted tick. Defaults to d3.format('.0f') if not set.

heatmap.xAxisTickFormat(d3.format('.0f'));

If called with no arguments, xAxisTickFormat will return the heatmap xAxis tick format function.

# heatmap.yAxisTickFormat([function])

Heatmap yAxis tick format function. The tick format function takes a single argument, the tick value, and returns a formatted tick. Defaults to d3.format('.2s') if not set.

heatmap.yAxisTickFormat(d3.format('.2s'));

If called with no arguments, yAxisTickFormat will return the heatmap yAxis tick format function.

# heatmap.hideLegend([bool])

Hide heatmap legend. Defaults to false if not set. If called with no arguments, hideLegend will return the status of the heatmap legend.

# heatmap.legendScaleTicks([integer])

Defines the number of scale ticks in the legend. Defaults to 5 if not set.

If called with no arguments, legendScaleTicks will return the number of ticks in the legend scale.

# heatmap.legendTickFormat([function])

Replaces the built-in legend tick format. The tick format function takes a single argument, the tick value, and returns a formatted tick. Defaults to d3.format('.0f') if not set.

heatmap.legendTickFormat(d3.format('.2f'));

If called with no arguments, legendTickFormat will return the heatmap legendTickFormat function.

# heatmap.gridStrokeOpacity([float])

Set the heatmap grid stroke opacity. Grid stroke is white by default, and gridStrokeOpacity controls the stroke opacity, ranging from 0.0 to 1.0, or completely transparent to completely white respectively. Defaults to 0.6 if not set.

If called with no arguments, gridStrokeOpacity will return the current grid stroke opacity.

# heatmap.onClick([function])

Defines a function that will be executed when the user clicks on a frame. Function takes 3 arguments, the value, the column index and row index respectively.

heatmap.onClick(function (d, i, j) {
    console.info("Clicked on row " + j + ", column " + i + ", value " + d);
});

If called with no arguments, onClick will return the click handler.

# heatmap.onMouseOver([function])

Defines a function that will be executed when the user hovers the mouse over a frame. Function takes 3 arguments, the value, the column index and row index respectively.

heatmap.onMouseOver(function (d, i, j) {
    document.getElementById("details").innerHTML = "column: " + i + ", row: " +  j + ", value: " + d
});

If called with no arguments, onMouseOver will return the mouse over handler.

# heatmap.onMouseOut([function])

Defines a function that will be executed when the user moves the mouse out of a frame. Function takes 3 arguments, the value, the column index and row index respectively.

If called with no arguments, onMouseOut will return the mouse out handler.

# heatmap.xAxisLabels([array])

Heatmap xAxis labels array. Defaults to null if not set, which hides de xAxis label.

heatmap.xAxisLabels([0, 1, 2, ...]);

If called with no arguments, xAxisLabels will return the heatmap xAxis labels array.

# heatmap.yAxisLabels([array])

Heatmap yAxis labels array. Defaults to null if not set, which hides de yAxis label.

heatmap.yAxisLabels([0, 1, 2, ...]);

If called with no arguments, yAxisLabels will return the heatmap yAxis labels array.

# heatmap.highlightColor([string])

Heatmap highlight base color. Defaults to #936EB5 if not set. If called with no arguments, highlightColor will return the heatmap highlight base color.

# heatmap.highlightOpacity([string])

Heatmap highlight opacity. Defaults to 0.4 if not set. If called with no arguments, highlightOpacity will return the heatmap highlight opacity.

# heatmap.setHighlight([string])

Set heatmap highlight ranges. Defaults to [] if not set, which doesn't highlight any frame.

heatmap.setHighlight(
    [
        {"start": [0,0], "end": [0,3]},
        {"start": [1,0], "end": [1,3]}
    ]
);

The highlight range object must contain a start property and an end property. Start and end properties are tuples, [column, row] coordinates, in a two integer array format.

If called with no arguments, setHighlight will return the selected heatmap highlight ranges.

# heatmap.invertHighlightRow([bool])

Inverts the highlight row selection. Defaults to false if not set. If called with no arguments, invertHighlightRow will return the status of the highlight inverse row selection option.

# heatmap.updateHighlight()

Updates the heatmap highlights based on the ranges set by the setHighlight function. updateHighlight is executed automatically at first draw, if highlight ranges are set.

heatmap.updateHighlight();

updateHighlight takes no arguments and returns void.

# heatmap.nullValueColor([string])

Heatmap color for null data values. Defaults to #CCCCCC if not set. If called with no arguments, nullValueColor will return the heatmap color for null data values.

Acknowledgements

Thank you Nadieh Bremer for the visual inspiration and D3.js examples.