Dynamic Flat Block Chart Plugin With jQuery - TimelineHeatmap
File Size: | 45 KB |
---|---|
Views Total: | 3347 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

The Flat Block Chart Plugin dynamically generates a horizontal timeline-style heat map where the individual values contained in a 3D or 2D matrix are represented as flat clickable blocks.
Basic usage:
1. Import jQuery library and the jQuery TimelineHeatmap plugin into the page.
<link href="TimelineHeatmap.css" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script> <script src="TimelineHeatmap.js"></script>
2. Prepare your data in a 3D or 2D matrix as follows:
mydata = [ [ [ "Mar 01", 1, 56, "03/01/2018" ], [ "Mar 02", 3, 1, "03/02/2018" ], [ "Mar 03", 4, 67, "03/03/2018" ] // ... ] ]
3. Generate a basic heat map in a container you specify.
<div id="myHeatmap"></div>
myHeatmap = new edaplotjs.TimelineHeatmap('myHeatmap', { data: myData, columnNames: ["label", "color", "height", "custom_field"] });
4. More configuration options to customize the heat map.
myHeatmap = new edaplotjs.TimelineHeatmap('myHeatmap', { data: myData, columnNames: ["label", "color", "height", "custom_field"], // The column index in the data matrix for showing labels under each block dataIndexForLabels: 0, // The column index in the data matrix for coding the color of each block dataIndexForColors: 1, // The column index in the data matrix for coding the height of each block dataIndexForHeights: 2, // Enable rendering each block by color quatiles // Default: false useColorQuantiles: true, // The bin and range of the color colorBin: [], colorRange: [], // The bin and range of the height heightBin: [], heightRange: [], // Prevent adding events to blocks with color value zero noEventWhenColorValueZero: true, // Add an arrow on the left of the timeline for appending new data. // If this setting is a function, when the arrow is clicked, the function will be triggered. addLeftArrow: true, // The text on the bottom of the arrow leftArrowLabel: 'More', // Indicate if the chart needs to be plotted when the object is created. plotDataWhenCreated: true });
5. Callback functions.
myHeatmap = new edaplotjs.TimelineHeatmap('myHeatmap', { click: function ($e, obj) { console.log("click", $e.data(), obj); }, select: function ($e, obj) { console.log("select", $e.data(), obj); }, create: function (obj) { console.log("create", obj); }; });
6. API methods.
// clear block selection myHeatmap.clearBlockSelection(); // select a specified block myHeatmap.selectBlockByIndex(5); // Select the last block myHeatmap.selectLastBlock(); // Select the first block myHeatmap.selectFirstBlock(); // Prepend blocks to the left of the timeline. var data = [["Mar 03", 9, 2, "03/03/2018"], ["Mar 04", 14, 2, "03/04/2018"]]; myHeatmap.prependBlocks(data); // Update blocks var data = [["Mar 03", 9, 2, "03/03/2018"], ["Mar 04", 14, 2, "03/04/2018"]]; myHeatmap.updateBlocks(data); // Get the data of the current selected block. myHeatmap.getSelectedBlockData(); // Get the jQuery DOM element of the current selected block. myHeatmap.getSelectedBlock(); // Get the current number of blocks. myHeatmap.getNumberOfBlocks(); // Use index to get the data for the corresponding block. myHeatmap.getBlockDataByIndex(index); // Get the data for the first block myHeatmap.getFirstBlockData(); // Get the data for the last block myHeatmap.getLastBlockData(); // Hide the left arrow myHeatmap.hideLeftArrow(); // Show the left arrow myHeatmap.showLeftArrow(); // Set the opacity of the left arrow myHeatmap.setLeftArrowOpacity(0.5); // Disable the left arrow myHeatmap.disableLeftArrow(); // Enable the left arrow myHeatmap.enableLeftArrow();
Changelog:
2019-12-17
- Remove the parameter create when initializing the chart.
- Add a new flag, plot_data_when_created, to control if the data need to be plotted when the object is created.
2018-11-14
- Handled edge cases when there is no data.
2018-11-06
- Added a parameter for disabling the color of selected blocks.
This awesome jQuery plugin is developed by yenchiah. For more Advanced Usages, please check the demo page or visit the official website.