2013-08-30 27 views
7

JQuery kullanarak grafik türünü değiştirmeye çalışıyorum. highcharts jquery dinamik değişiklik tablo türü sütun çubuğu

I fonksiyonunu kullanarak (yeni bir grafik yeniden olmadan) dinamik olarak grafik türünü değiştirmek yolu bulunan:

serisi [i] .update ({türü: ChartType});

İlk sorum şu olacak: Sadece dizileri değil, tüm grafiği değiştirmenin bir yolu var mı? Okumaya devam etmiyorsa,

Ancak bu işlevle 'bar' grafiğinin çalışmasını yapamıyorum. Bir sütun şeması gibi davranıyor. Gördüğünüz gibi pasta örneği istisna olarak çalışıyor.

çubuğu: o (örnek örnek) nasıl çalışır http://www.highcharts.com/demo/bar-basic

:

<div id="top10_" style="float:left"> 
    <button id="set_column">column</button> 
    <button id="set_bar">bar</button> 
    <button id="set_pie">pie</button> 
</div> 
<div id="top10" style="min-width: 400px; height: 400px; margin: 0 auto;"></div> 
$('#set_column').click(function() { 
    var chart = $(this).parent('div').attr('id'); 
    chart = chart.replace('_', ''); 
    $('#' + chart).highcharts().series[0].update({ 
     type: "column" 
    }); 
}); 
$('#set_bar').click(function() { 
    var chart = $(this).parent('div').attr('id'); 
    chart = chart.replace('_', ''); 
    $('#' + chart).highcharts().series[0].update({ 
     type: "bar" 
    }); 
}); 
$('#set_pie').click(function() { 
    var chart = $(this).parent('div').attr('id'); 
    chart = chart.replace('_', ''); 
    $('#' + chart).highcharts().series[0].update({ 
     type: "pie" 
    }); 
}); 

Highcharts oluşturma: http://jsfiddle.net/supergg/zqvNq/4/

: Burada
$('#top10').highcharts({ 
    chart: { 
     type: 'column', 
     margin: [50, 50, 100, 80] 
    }, 
    title: { 
     text: 'TOP10' 
    }, 
    subtitle: { 
     text: ' ' 
    }, 
    credits: { 
     enabled: false 
    }, 
    xAxis: { 
     categories: ['1', '2', '3', '4'], 
     labels: { 
      rotation: -45, 
      align: 'right', 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }, 
    yAxis: { 
     min: 0, 
     title: { 
      text: 'Ilość' 
     } 
    }, 
    legend: { 
     enabled: false 
    }, 
    tooltip: { 
     formatter: function() { 
      return '<b>' + this.x + '</b><br/>' + 'Ilość: ' + this.y; 
     } 
    }, 
    series: [{ 
     name: 'Ilość zgłoszeń, TOP10', 
     data: [1, 2, 3, 43], 
     dataLabels: { 
      enabled: true, 
      rotation: -90, 
      color: '#FFFFFF', 
      align: 'right', 
      x: 4, 
      y: 10, 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }] 
}); 

bir keman örnektir

Teşekkür ederiz,

cevap

10

Grafikte ters çevrilmiş parametreyi kullanabilir ve yAxis'i güncelleyebilirsiniz. http://jsfiddle.net/n9xkR/8/

$('#bar').click(function() { 


    chart.inverted = true; 
    chart.xAxis[0].update({}, false); 
    chart.yAxis[0].update({}, false); 
    chart.series[0].update({ 
     type: 'column' 
    }); 

}); 
+0

Tamam ben işe yarıyor görüyoruz. Ama bu aslında bir çubuk grafik değil. –

+0

Yani mükemmel değilse, yok edip yeni grafik oluşturabilirsiniz. –

+0

Grafik türünde, serinin değil grafik seviyesinde anahtarlama yapmak için hiçbir metode sahip olmadığına inanamıyorum. Senin zamanlayıcı Sebastian için Thks –

-1

emin değil henüz ya da değil bir cevap bulmak ama ben bile ileride başvurmak üzere size 101% yararlıdır bir bağlantı buldu. Bir göz atabilir misin lütfen? Başka bir şey arıyordum ve bu bağlantıyı buldum ve soruyu da aldım.

[http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/series-update/][1] 

bana bildirin ya bu herhangi bir şekilde size yardımcı olacaktır eğer benim cevabı kabul. Şerefe :)

3

Bu benim için çalışıyor:

$.each(chart.series, function (key, series) { 
    series.update(
     {type: 'bar'}, 
     false 
    ); 
} 
İlgili konular