Blame view

app/main/static/js/charges.js 15.6 KB
5e6f4e07   hitier   Set Rokotyan Solu...
1
/* Round float to two decimals only */
966f9b78   hitier   Js Round float be...
2
3
4
5
function roundToTwo(num) {
    return +(Math.round(num + "e+2")  + "e-2");
}

90c7b0e4   hitier   Small comments an...
6
7
function build_chart(div_selector, data_url, entity_name, category_type) {

5f89fdc7   hitier   Fix color scale: ...
8
    const main_elt = document.getElementById("main")
7c1b38be   hitier   Draw charts to fi...
9

13c144c8   Anais Amato   Add horizontal le...
10
    const margin = {top: 60, right: 150, bottom: 200, left: 90},
5f89fdc7   hitier   Fix color scale: ...
11
        width = main_elt.offsetWidth * 0.95 - margin.left - margin.right,
13c144c8   Anais Amato   Add horizontal le...
12
        height = 600 - margin.top - margin.bottom;
54e2baa6   hitier   Add charge charts...
13

90c7b0e4   hitier   Small comments an...
14
    const height_ratio = 1.2;    // how murch room to give above chart for lisibility
ff5fd5bf   hitier   Less and Longer ...
15

5f89fdc7   hitier   Fix color scale: ...
16
17
    const tooltip_offset = {dx: 0, dy: 100}
    const tooltip_offset_dot = {dx: 20, dy: 60}
f9fef9d0   hitier   Add tooltip
18

90c7b0e4   hitier   Small comments an...
19
    const y_ticks_num = 5        // dont show to many y ticks for lisibility
f0706d95   hitier   Add color legend
20

13c144c8   Anais Amato   Add horizontal le...
21
22
23
24
25
    const legendRectSize = 15; // size of rectangle in legend

    // const legend_cell_size = 15; // size of legend colored scare
    // const legend_x = width + 20; // begin legend a bit after the end of the chart
    // const legend_y = 600 - margin.bottom + 20; // begin legend a bit after the end of the chart
54e2baa6   hitier   Add charge charts...
26

90c7b0e4   hitier   Small comments an...
27
    const dot_radius = 6;        // size of total line dot
f9c1f568   hitier   Add dot on total ...
28

5f89fdc7   hitier   Fix color scale: ...
29
30
    const xScale = d3.scaleBand()
        .range([0, width])
67ab2300   hitier   Fix appearance de...
31
        .padding(0.4);
6b44860d   hitier   Make a draw_line ...
32

5f89fdc7   hitier   Fix color scale: ...
33
    const yScale = d3.scaleLinear()
90c7b0e4   hitier   Small comments an...
34
        .range([height, 0]);
54e2baa6   hitier   Add charge charts...
35

90c7b0e4   hitier   Small comments an...
36
    var colorScale = d3.scaleOrdinal([]); //  Will be really set later by category type
de63cb72   hitier   Add title to proj...
37

90c7b0e4   hitier   Small comments an...
38
39
40
41

    //
    // Configure chart by the category given as arg
    //
83d933c9   hitier   New draw_categori...
42
43
    var chart_title = ""
    var category_title = ""
90c7b0e4   hitier   Small comments an...
44
45
    var draw_total_line = () => void 0;
    var draw_categories_bars = () => void 0;
7d095c38   hitier   One color scale b...
46

90c7b0e4   hitier   Small comments an...
47
    if (category_type == 'capacity') {
83d933c9   hitier   New draw_categori...
48
49
50
51
        chart_title = "Charges par fonction"
        category_title = "Fonction"
        //draw_total_line
        draw_categories_bars = draw_categories_grouped
7d095c38   hitier   One color scale b...
52
        colorScale = d3.scaleOrdinal(d3.schemeSet3);
90c7b0e4