Highcharts - экспортировать текущее состояние графика - PullRequest
2 голосов
/ 25 мая 2011

Метод экспорта Highcharts использует начальное состояние диаграммы, а не последнее состояние в зависимости от взаимодействия с пользователем. Если показать / скрыть некоторые серии, а затем экспортировать диаграмму, вы все равно получите все серии, а не то, что на самом деле показывает диаграмма.

var chart;
$(document).ready(function() {

    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'chart',
            defaultSeriesType: 'line',
        },

        title: {
            text: 'Expression Profile',
        },

        subtitle: {
            text: 'Reference: act'
        },

        xAxis: {
            categories: ['14das-seedling','25das-aerial','35das-aerial',
                         '42das-rosette','42das-stem','53das-stem',
                         '53das-inflores'],
            title: {
                text: 'Development stages',
                margin:20
            }

        },

        yAxis: {
            title: {                                            
                text: 'Log10 act'
            },

            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },

        legend: {
            margin:20
        },

        tooltip: {
            formatter: function() {
                return '<b>mir'+ this.series.name +'</b><br/>'+
                                this.x +' <br/>log10:'+ this.y ;
            }
        },

        series: [
            {
                name: '156a',
                data: [-2.75607, -3.41066, -4.10053, -4.63856, 
                       -4.73462,-4.6145,-3.90987]
            },
            {
                name: '156b',
                data: [-4.15935, -6.54969, -6.70229, -5.80646, 
                       -5.68092,-5.38481,-5.96406]
            },
            {
                name: '156c',
                data: [-4.83317, -5.52142, -4.94995, -5.47179, 
                       -4.97123,-4.86163,-5.12806]
            },
            {
                name: '156d',
                data: [0, -5.93499, -5.41856, -5.88918, 
                       -6.70304,-5.69335,-5.39792]
            },
            {
                name: '156e',
                data: [-4.0707, -6.1185, -6.58353, -6.17734, 
                       -6.84433,-5.4114,-5.37817]
            },
            {
                name: '156f',
                data: [-3.97561, -5.02619, -5.67834, -5.65722, 
                       -5.76238,-4.51125,-5.30344]
            },
            {
                name: '156g',
                data: [-3.81589, -2.50758, -2.41623, -3.63983, 
                       -3.73004,-2.90055,-3.61997]
            },
            {
                name: '156h',
                data: [-4.31169, -5.74017, -5.55419, -5.26679,
                       -5.01009,-4.99596,-5.68062]
            }
         ] 
    });
});

Вот моя скрипка: http://jsfiddle.net/sherlock85/safKs/

Можно ли экспортировать текущее состояние графика?

Любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 31 августа 2011

Эта проблема была исправлена ​​в версии 2.1.5 Highcharts.Я полагаю, что комментарий из changelog , показанный ниже, решает вашу проблему.

Экспортированные диаграммы теперь соответствуют минимальным и максимальным значениям, заданным пользователем после увеличения и опции видимости.

1 голос
/ 26 мая 2011

Для меня экспортируется последнее состояние, даже когда я изменяю график. Я предполагаю, что если вы сделаете chart.redraw () после ваших изменений, он будет экспортировать последнее состояние Также попробуйте обновить до последней версии highcharts.

0 голосов
/ 04 октября 2013

Проблема по-прежнему сохраняется, если вы использовали следующий код в диаграмме:

chart = new Highcharts.Chart({
        chart: {
            ...,
            events: {
                load: function(event) {
                    this.series.forEach(function(d,i){if(d.options.id==1)d.hide()})
                }
            }    
        },...

Этот фрагмент кода отвечает за первоначальное скрытие рядов в вашем графике (с id == 1 в этом примере),Кажется, у этого есть отрицательный побочный эффект невозможности экспортировать текущее состояние вашего графика.

Удалите его, и первоначальная проблема будет решена.

Если вы все еще хотите сохранить «первоначальное скрытие» рядов данных и используете, например, AJAX (и jQuery) для выборкиданные, используйте следующий вид кода:

$.ajax({
    type: "GET",
    url: myURL,
    data: {data: myData},
    dataType: 'json',
    success: function(data) {
        chart.series[0].setData(data[0], true);
        chart.series[1].setData(data[1], true);
    },
    complete: function(jqXHR, textStatus) {
        chart.series[1].hide();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...