Restablecer Highcharts al estado inicial

Crear mi Highchart con opciones preestablecidas funciona bien:

chart = new Highcharts.Chart(options);

Sin embargo, cuando quiero destruir y recrear el gráfico, solo se destruye. Incluso si elimino chart.destroy(); el gráfico todavía está completamente en blanco pero no se ha vuelto a crear.

$('#resetChart').on("click", function(e){
    e.preventDefault();
    chart.destroy();
    chart = new Highcharts.Chart(options);
});

Un poco atascado aquí sobre cómo restablecer este gráfico.

Editar::

Inspeccionar el contenedor del gráfico muestra que los gráficos circulares están creando algo aquí, pero no parece estar recuperando los datos correctamente. ¿Debo pasar mi variable de datos nuevamente aunque esté configurada en las opciones?

series: [{
                name: name,
                data: data,
                /* changes bar size */
                pointPadding: 0,
                borderWidth: 0,
                pointWidth: 15,
                shadow: false
        }]

Luego se definen los datos en la página (Para nuestro CMS):

<script type="text/javascript">
        data = [
            {
                y: {value},
                name: 'field1',
                id:'1'
            },
            {
                y: {value},
                name: 'field2',
                id:'2'
            },
            {
                y: {value},
                name: 'field3',
                id:'3'
            }
        ];
    </script>

preguntado el 22 de mayo de 12 a las 14:05

2 Respuestas

$('#resetChart').on("click", function(e){
    e.preventDefault();
    while(chart.series.length > 0) chart.series[0].remove(true);
    chart = new Highcharts.Chart(options);
});

http://jsfiddle.net/tapkr/1

Respondido 03 Abr '14, 21:04

Eso no parece funcionar. También lo probé en su demostración básica de tarta: jsfiddle.net/tapkr - gregg b

¿Te funciona ese enlace? Tal vez tengo un problema con los navegadores ya que el violín no se reinicia para mí: gregg b

En FF, ese violín solo está destruyendo el gráfico. No veo que se reconstruya. - Wergeld

Lo siento, Raminson, veo que esto funciona en el violín si vuelvo a llamar al gráfico. Sin embargo, todavía no funcionará para mi proyecto. Sospecho que tiene que ver con mi variable de datos que edité en mi pregunta. - gregg b

@Grillz, debe definir un nuevo gráfico después de eliminar la serie, ¿ha probado esto? jsfiddle.net/tapkr/5 - indefinido

Cuando crea su gráfico por primera vez, pasa algunas opciones a través del parámetro, puede guardarlas en una var y cuando quiera crear nuevamente, use las mismas opciones como el siguiente código.

var defaultOptions = {
    // your options
};

function drawDefaultChart() {
    chart = new Highcharts.Chart(defaultOptions);
}

drawDefaultChart();

$('#resetChart').on("click", function(e){
    e.preventDefault();
    chart.destroy();
    drawDefaultChart();
});

Puedes verlo funcionando aquí.

contestado el 22 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.