2012-09-14 15 views
9

मैं एक स्पलीन ग्राफ़ पर स्ट्रोक रंग बदलने में सक्षम हूं, लेकिन जब तक मैं इसे छिपाने और श्रृंखला को क्लिक करके इसे दिखाने के बाद अंक और किंवदंती रंग बदल नहीं पाता हूं और फिर प्रत्येक पर ध्यान देता हूं बिंदु। http://jsfiddle.net/J56hm/2/गतिशील रूप से हाइचार्ट्स में श्रृंखला रंग बदलना

$(function() { 
    var chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container' 
     }, 
     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 

     series: [{ 
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]   
     }] 
    }); 

    // the button handler 
    $('#button').click(function() { 
     chart.series[0].color = "#FF0000"; 
     chart.series[0].graph.attr({ stroke: '#FF0000' }); 

     $.each(chart.series[0].data, function(i, point) { 
      point.graphic.attr({ fill: '#FF0000' }); 
     }); 
     chart.series[0].redraw(); 
     chart.redraw(); 
    }); 
});​ 

किसी भी विचार क्यों यह हो रहा है या इस को हल करने के लिए एक रास्ता:

मैं एक बेला यहाँ है?

उत्तर

6

Highcharts मंच पर निम्नलिखित धागा है के साथ आने के जवाब अपडेट करेगा एक समाधान:

http://highslide.com/forum/viewtopic.php?f=9&t=7075&p=33437 एक पहेली http://jsfiddle.net/G5Pk7/ के साथ जो इसे दिखाता है।

var chart = new Highcharts.Chart({ 
    chart: { 
     renderTo: 'container' 
    }, 
    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
    }, 

    series: [{ 
     data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]   
    }] 
}); 

$('#button').click(function() { 
    var series = chart.series[0]; 
    series.color = "#FF00FF"; 
    series.graph.attr({ 
     stroke: '#FF00FF' 
    }); 
    chart.legend.colorizeItem(series, series.visible); 
    $.each(series.data, function(i, point) { 
     point.graphic.attr({ 
      fill: '#FF00FF' 
     }); 
    }); 
    series.redraw(); 
}); 

यह स्पष्ट रूप से एक गंदे समाधान है, लेकिन काम करने लगता है।

+0

आप इसे 'गंदा' समाधान क्यों मानते हैं? यह मेरे लिए बहुत अच्छा काम किया! – user1415427

5

क्या आपने कंसोल को भी देखा था?

ReferenceError: series is not defined
http://fiddle.jshell.net/J56hm/1/show/
Line 39

मुद्दा

$.each(chart.series[0].data, function(i, point) { 
... 
} 

लेकिन अब विपरीत, होता है जब आप मंडराना अंक पर चला जाता है नीले फिर आप सीधे svg कि द्वारा प्रदान की गई है हेरफेर करने के लिए कोशिश कर रहे हैं हल करने के लिए निम्न में बदल रहा है रंग विशेषताओं को सेट करके हाईचार्ट्स। यह सही तरीका नहीं है, क्योंकि हाईचार्ट चार्ट को इसके प्रतिपादन एल्गोरिदम के आधार पर फिर से चला सकता है और आपके सभी परिवर्तन गुम हो सकते हैं।
कहा है कि सभी के बाद, मैं अभी भी यह करने के लिए Highcharts में किसी भी समर्थित विधि नहीं पता है, अगर मैंने कुछ

@ jsFiddle

+0

मेरे गलती उपयोग कर सकते हैं। जब मैंने सवाल पोस्ट किया और कंसोल को नहीं देखा तो मैं भीड़ में था। मेरा सवाल अभी भी खड़ा है, हालांकि मुझे आसपास के गंदे काम मिल सकते हैं, भले ही इसमें अंतर्निहित एसवीजी को संशोधित करना शामिल हो। – Soliah

30

यह आसान है, तो आप इस कोड त्रुटि के साथ

chart.series[0].options.color = "#008800"; 
chart.series[0].update(chart.series[0].options); 
संबंधित मुद्दे