Я использую высокие диаграммы, которые дают данные, когда я вставляю в массив, но я хочу вставить данные динамически - PullRequest
0 голосов
/ 08 апреля 2020

Можно ли динамически добавлять эти данные в старшие диаграммы вместо пользовательского массива? Можно ли использовать каждый l oop для динамической вставки данных? Есть ли способ, которым мы можем использовать таблицу или другой массив, чтобы сделать его динамически? Поскольку я новичок в хай-чартах, я не могу понять, как это использовать. Заранее спасибо

Highcharts.chart('container', {
    chart: {
        zoomType: 'xy'
    },
    title: {
        text: 'Average Monthly Weather Data for Tokyo',
        align: 'left'
    },
    subtitle: {
        text: 'Source: WorldClimate.com',
        align: 'left'
    },
    xAxis: [{
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        crosshair: true
    }],
    yAxis: [{ // Primary yAxis
        labels: {
            format: '{value}°C',
            style: {
                color: Highcharts.getOptions().colors[2]
            }
        },
        title: {
            text: 'Temperature',
            style: {
                color: Highcharts.getOptions().colors[2]
            }
        },
        opposite: true

    }, { // Secondary yAxis
        gridLineWidth: 0,
        title: {
            text: 'Rainfall',
            style: {
                color: Highcharts.getOptions().colors[0]
            }
        },
        labels: {
            format: '{value} mm',
            style: {
                color: Highcharts.getOptions().colors[0]
            }
        }

    }, { // Tertiary yAxis
        gridLineWidth: 0,
        title: {
            text: 'Sea-Level Pressure',
            style: {
                color: Highcharts.getOptions().colors[1]
            }
        },
        labels: {
            format: '{value} mb',
            style: {
                color: Highcharts.getOptions().colors[1]
            }
        },
        opposite: true
    }],
    tooltip: {
        shared: true
    },
    legend: {
        layout: 'vertical',
        align: 'left',
        x: 80,
        verticalAlign: 'top',
        y: 55,
        floating: true,
        backgroundColor:
            Highcharts.defaultOptions.legend.backgroundColor || // theme
            'rgba(255,255,255,0.25)'
    },
    series: [{
        name: 'Rainfall',
        type: 'column',
        yAxis: 1,
        data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        tooltip: {
            valueSuffix: ' mm'
        }

    }, {
        name: 'Sea-Level Pressure',
        type: 'spline',
        yAxis: 2,
        data: [1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7],
        marker: {
            enabled: false
        },
        dashStyle: 'shortdot',
        tooltip: {
            valueSuffix: ' mb'
        }

    }, {
        name: 'Temperature',
        type: 'spline',
        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
        tooltip: {
            valueSuffix: ' °C'
        }
    }]
});

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете использовать метод update или setData, чтобы добавить серии / данные к уже существующему графику:

$.getJSON( "...", function( data ) {
  chart.series[0].setData(data);
});

// OR

$.getJSON( "...", function( data ) {
  chart.update({
    series: [{
      data: data
    }]
  });
});

Демонстрационная версия: http://jsfiddle.net/BlackLabel/6m4e8x0y/4948/

Справочник по API:

https://api.highcharts.com/class-reference/Highcharts.Chart#update

https://api.highcharts.com/class-reference/Highcharts.Series#setData


Или создать диаграмму после завершения загрузки данных:

$.getJSON( "...", function( data ) {
  Highcharts.chart('container', {
    series: [{
      data: data
    }]
  });
});

Демонстрационная версия: http://jsfiddle.net/BlackLabel/6m4e8x0y/4949/


Вы также можете использовать модуль данных Highcharts: https://www.highcharts.com/docs/working-with-data/data-intro и получать данные, например, из CSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...