2013-11-21 6 views
5

मैं मूल्यों की एक सरणी प्रदर्शित करने के लिए हाईचार्ट्स में VU Meter ग्राफ तैयार कर रहा हूं। <SELECT> के <OPTION> चुनकर, ये मान एक समय में प्रदर्शित होते हैं। मैं <OPTION> के चयनित label से मेल खाने के लिए ग्राफ़ के title को बदलने के तरीके को समझने में कामयाब रहा, लेकिन दुर्भाग्य से मैं नोब हूं और series के data को ठीक से अपडेट करने में सक्षम नहीं था।हाइचार्ट्स - सीरीज [0] .डेटा और वाईमीटर के वाईएक्सिस शीर्षक को सही तरीके से कैसे अपडेट करें?

न्यूनतम कार्य उदाहरणjsFiddle पर उपलब्ध है। विशेष रूप से, निम्नलिखित समारोह निकाल दिया जाता है जब <SELECT> बदल गई है:

$('#receptorsList0').change(function() { 
    var selectedOption = $("#receptorsList0 option:selected"); 
    var selectedValue = selectedOption.val(); 
    var selectedText = selectedOption.text(); 
    alert("i: "+selectedOption+", val: "+selectedValue+", text: "+selectedText); 

    // 1. Possible? 
    chart.yAxis.setTitle({ text: table[selectedText] + '<br/><span style="font-size:8px">' + selectedText + '</span>' }); 
    // 2. Doesn't work, suggestions? Same with chart.series[0].update(...) 
    chart.series[0].setData([selectedValue], true); 
    chart.setTitle({ text: selectedText }); 
    // 3. Unneeded, right? 
    chart.redraw(); 
}); 

मेरे सवालों का कर रहे हैं निम्नलिखित:

  1. yAxis के title समर्थित के परिवर्तन है? यह ग्राफ के शीर्षक को अपडेट करने के आदेश के समान है, लेकिन यह निश्चित रूप से काम नहीं करता है।
  2. मुझे डेटा कैसे बदलना है? chart.series[0].setData(...) और chart.series[0].update(...) दोनों ने अभी भी रहने के लिए सुई को गायब करने के लिए बनाया है। data ठीक तरह से स्वरूपित नहीं है, शायद? क्या आप कृपया मेरी गलती को इंगित कर सकते हैं?
  3. यह अनियंत्रित है, दाएं (बशर्ते उपर्युक्त काम)?

आपके द्वारा प्रदान किए जा सकने वाले किसी भी सुझाव के लिए अग्रिम धन्यवाद!


Sebastian Bochan जो मुझे सही दिशा की ओर इशारा किया के लिए धन्यवाद, मैं ऊपर की समस्याओं को हल करने में कामयाब रहे! ऊपर समारोह के अंतिम संस्करण कृपया नीचे:

$('#receptorsList0').change(function() { 
    var selectedOption = $("#receptorsList0 option:selected"); 
    var selectedValue = parseFloat(selectedOption.val()); 
    var selectedText = selectedOption.text(); 

    chart.yAxis[0].update({ 
     title: { 
      text : table[selectedText] + '<br/><span style="font-size:8px">'+selectedText+'</span>', 
      y : -40 
     } 
    }); 
    chart.series[0].data[0].update(selectedValue); 
    chart.setTitle({ 
     text: selectedText 
    }); 
}); 

उत्तर

10
  1. हाँ, यह अद्यतन समारोह के द्वारा ही संभव है पर धुरी पर कहा जाता है। http://api.highcharts.com/highcharts#Axis.update()

  2. अद्यतन, बिंदु पर काम करता है, इसलिए यह chart.series [0] .data [0] .update (20) होना चाहिए;

+0

मुझे सही दिशा की ओर इशारा करने के लिए बहुत बहुत धन्यवाद! मैं अन्य लोगों के संदर्भ के रूप में आपके सुझावों के साथ प्रश्न अपडेट कर दूंगा! –

संबंधित मुद्दे