add custom legend for heatmap

This commit is contained in:
IDDT 2017-11-07 22:03:59 +07:00 committed by pratu16x7
parent 1efedb3094
commit 03fc057a5d
3 changed files with 22 additions and 10 deletions

View File

@ -368,6 +368,7 @@ new Chart({
parent: "#chart-heatmap",
data: heatmap_data,
type: 'heatmap',
legend_scale: [0, 1, 2, 4, 5],
height: 115,
discrete_domains: 1 // default 0
});
@ -388,6 +389,7 @@ Array.prototype.slice.call(
parent: "#chart-heatmap",
data: heatmap_data,
type: 'heatmap',
legend_scale: [0, 1, 2, 4, 5],
height: 115,
discrete_domains: discrete_domains
});

View File

@ -238,6 +238,12 @@
<pre><code class="hljs javascript margin-vertical-px"> let heatmap = new Chart({
parent: "#heatmap",
data: heatmap_data, // object with date/timestamp-value pairs
legend_colors: [ // optional
'#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127'
],
legend_scale: [ // optional, calculated linearly if not provided
0, 1, 2, 4, 5 // starting values for each color
],
type: 'heatmap',
height: 115,
discrete_domains: 1 // default 0

View File

@ -9,7 +9,9 @@ export default class Heatmap extends BaseChart {
subdomain = '',
data = {},
discrete_domains = 0,
count_label = ''
count_label = '',
legend_colors = null,
legend_scale = []
}) {
super(arguments[0]);
@ -22,9 +24,10 @@ export default class Heatmap extends BaseChart {
this.count_label = count_label;
let today = new Date();
this.start = start || add_days(today, 365);
this.start = start || this.add_days(today, 365);
this.legend_colors = ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127'];
this.legend_colors = legend_colors || ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127'];
this.legend_scale = legend_scale;
this.translate_x = 0;
this.setup();
@ -71,7 +74,13 @@ export default class Heatmap extends BaseChart {
setup_values() {
this.domain_label_group.textContent = '';
this.data_groups.textContent = '';
this.distribution = this.get_distribution(this.data, this.legend_colors);
if (this.legend_scale.length !== this.legend_colors.length) {
this.distribution = this.get_distribution(this.data, this.legend_colors);
} else {
this.distribution = this.legend_scale;
}
this.month_names = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
@ -264,11 +273,6 @@ export default class Heatmap extends BaseChart {
}
get_max_checkpoint(value, distribution) {
return distribution.filter((d, i) => {
if(i === 1) {
return distribution[0] < value;
}
return d <= value;
}).length - 1;
return distribution.filter((d) => d <= value).length - 1;
}
}