You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
5.0 KiB
201 lines
5.0 KiB
/* ------------------------------------------------------------------------------ |
|
* |
|
* # C3.js - advanced examples |
|
* |
|
* Demo setup of chart transformations, zoom, pan and brushing features |
|
* |
|
* Version: 1.0 |
|
* Latest update: August 1, 2015 |
|
* |
|
* ---------------------------------------------------------------------------- */ |
|
|
|
$(function () { |
|
|
|
|
|
// Chart transforms |
|
// ------------------------------ |
|
|
|
// Generate chart |
|
var transform = c3.generate({ |
|
bindto: '#c3-transform', |
|
size: { height: 400 }, |
|
data: { |
|
columns: [ |
|
['data1', 30, 200, 100, 400, 150, 250], |
|
['data2', 130, 100, 140, 200, 150, 50] |
|
] |
|
}, |
|
grid: { |
|
y: { |
|
show: true |
|
} |
|
} |
|
}); |
|
|
|
// Update data |
|
function update() { |
|
transform.transform('donut'); |
|
setTimeout(function () { |
|
transform.transform('area'); |
|
}, 1500); |
|
setTimeout(function () { |
|
transform.transform('bar', 'data1'); |
|
}, 3000); |
|
setTimeout(function () { |
|
transform.transform('scatter'); |
|
}, 4500); |
|
setTimeout(function () { |
|
transform.transform('bar'); |
|
}, 6000); |
|
setTimeout(function () { |
|
transform.transform('step'); |
|
}, 7500); |
|
setTimeout(function () { |
|
transform.transform('line'); |
|
$('#btn-transform').removeClass('disabled'); |
|
}, 11500); |
|
} |
|
|
|
// Run update on click |
|
$('#btn-transform').click(function () { |
|
$(this).addClass('disabled'); |
|
update(); |
|
}); |
|
|
|
|
|
|
|
// Zoomable chart |
|
// ------------------------------ |
|
|
|
// Generate chart |
|
var zoomable_chart = c3.generate({ |
|
bindto: '#c3-chart-zoomable', |
|
size: { height: 400 }, |
|
data: { |
|
columns: [ |
|
['sample', 30, 120, 320, 180, 50, 250, 167, 279, 290, 400, 214, 190, 40, 400, 162, 289, 300, 200, 120, 320, 390, 110, 130, 400, 240, 189, 250, 30, 100, 200, 300, 250, 50, 100, 50, 300, 250, 20, 90, 150, 400, 320, 220, 150, 190, 270, 190, 350, 90, 300, 150, 220, 170, 40] |
|
] |
|
}, |
|
color: { |
|
pattern: ['#1E88E5'] |
|
}, |
|
zoom: { |
|
enabled: true |
|
}, |
|
grid: { |
|
x: { |
|
show: true |
|
}, |
|
y: { |
|
show: true |
|
} |
|
} |
|
}); |
|
|
|
|
|
|
|
// Subchart (brushing) |
|
// ------------------------------ |
|
|
|
// Generate chart |
|
var subchart = c3.generate({ |
|
bindto: '#c3-subchart', |
|
size: { height: 400 }, |
|
data: { |
|
columns: [ |
|
['sample', 30, 200, 100, 400, 150, 250, 150, 200, 170, 240, 350, 150, 100, 400, 150, 250, 150, 200, 170, 240, 100, 150, 250, 150, 200, 170, 240, 30, 200, 100, 400, 150, 250, 150, 200, 170, 240, 350, 150, 100, 400, 350, 220, 250, 300, 270, 140, 150, 90, 150, 50, 120, 70, 40] |
|
] |
|
}, |
|
color: { |
|
pattern: ['#00ACC1'] |
|
}, |
|
subchart: { |
|
show: true |
|
}, |
|
grid: { |
|
y: { |
|
show: true |
|
} |
|
} |
|
}); |
|
|
|
|
|
|
|
// Label format |
|
// ------------------------------ |
|
|
|
// Generate chart |
|
var label_format = c3.generate({ |
|
bindto: '#c3-label-format', |
|
size: { height: 400 }, |
|
data: { |
|
columns: [ |
|
['data1', 30, -200, -100, 400, 150, 250, 100, 120, 150], |
|
['data2', -50, 150, 150, -150, -50, -150, -120, -100, -120], |
|
['data3', -100, 100, -40, 100, -150, -50, 90, -40, 100] |
|
], |
|
groups: [ |
|
['data1', 'data2'] |
|
], |
|
type: 'bar', |
|
labels: { |
|
format: { |
|
y: d3.format('$') |
|
} |
|
} |
|
}, |
|
color: { |
|
pattern: ['#4CAF50', '#F4511E', '#1E88E5'] |
|
}, |
|
bar: { |
|
width: { |
|
ratio: 1 |
|
} |
|
}, |
|
grid: { |
|
y: { |
|
lines: [{value: 0}] |
|
} |
|
} |
|
}); |
|
|
|
|
|
|
|
// Data colors |
|
// ------------------------------ |
|
|
|
// Generate chart |
|
var data_color = c3.generate({ |
|
bindto: '#c3-data-color', |
|
size: { height: 400 }, |
|
data: { |
|
columns: [ |
|
['data1', 30, 20, 50, 40, 60, 50], |
|
['data2', 200, 130, 90, 240, 130, 220], |
|
['data3', 300, 200, 160, 400, 250, 250] |
|
], |
|
type: 'bar', |
|
colors: { |
|
data1: '#4DB6AC', |
|
data2: '#009688', |
|
data3: '#00796B' |
|
} |
|
}, |
|
grid: { |
|
y: { |
|
show: true |
|
} |
|
} |
|
}); |
|
|
|
|
|
|
|
// Resize chart on sidebar width change |
|
$(".sidebar-control").on('click', function() { |
|
transform.resize(); |
|
zoomable_chart.resize(); |
|
subchart.resize(); |
|
label_format.resize(); |
|
data_color.resize(); |
|
}); |
|
}); |