2013-05-30 9 views
6

के साथ जावास्क्रिप्ट बबल चार्ट ठीक ठीक कामदेव साइट में 10 Charts about Sex नामक एक इन्फोग्राफ़िक आलेख है।स्लाइडर

मुझे वास्तव में पसंद है कि चार्ट # 7 में एक बबल चार्ट & एक स्लाइडर शामिल है।

मैं एक jQuery लाइब्रेरी का उपयोग कर अपने स्वयं के जावास्क्रिप्ट विज़ुअलाइज़ेशन के साथ वही काम करना चाहता हूं।

दुर्भाग्यवश ठीक कामदेव ने बबल चार्ट की पीएनजी छवियों की श्रृंखला को एनिमेट किया है।

मैं स्लाइडर को शामिल करने वाली मौजूदा चार्टिंग लाइब्रेरी पर कुछ मार्गदर्शन की सराहना करता हूं। वैकल्पिक रूप से एक स्लाइडर का उपयोग करके कई बबल चार्ट प्रस्तुत करना संभव है और अभी भी अच्छा प्रदर्शन प्राप्त करना संभव है।

+0

संभावित बबल चार्टिंग समाधान ... http://jondavidjohn.github.io/bubblechart/ – jondavidjohn

उत्तर

0

इस कार्य को हल करने के लिए मैं हाईचार्ट्स लाइब्रेरी और इसकी श्रृंखला .etData() फ़ंक्शन का उपयोग करता था। इसके अलावा jQuery UI slider

यह कैसे काम करता:

1) jQuery ui स्लाइडर परिवर्तन घटना

2) करने के लिए समारोह में आबद्ध इस समारोह डेटा के विभिन्न सेट के साथ Series.SetData() पर चलेगा (वर्तमान स्लाइडर के आधार पर स्थिति) उच्च चार्ट चार्ट पर

2

हाई चार्टजेएस + JqueryUISlider सबसे अच्छे समाधान हैं।

बबल चार्ट यहाँ है:

<body> 
     <div id="your_chart"></div> 
     <div id="slider"></div> 
</body> 
+0

ऐसा लगता है कि उच्च भुगतान का उपयोग बिना किसी भुगतान लाइसेंस के वाणिज्यिक उपयोग के लिए किया जा सकता है – gray

1

मुद्दा आप चलाना होगा जब इस कार्य के लिए Highcharts का उपयोग करते हुए कि बुलबुले के आकार चार्ट आप वर्तमान में प्रदर्शित कर रहे हैं के लिए विशिष्ट होता है। यदि आप अधिक वास्तविक रूप से बुलबुले के आकार में वृद्धि प्रदर्शित करना चाहते हैं, तो आपको थोड़ा अलग दृष्टिकोण लेना होगा।

मैंने हाल ही में इसे पूरा करने के लिए हाईचर्ट्स और jQuery यूआई लेबल वाले स्लाइडर का संयोजन उपयोग किया।

आप की आवश्यकता होगी:

में Highcharts-मो re.src.js, इस अनुभाग ढूंढें:

 for (i = 0, len = zData.length; i < len; i++) { 
     zRange = zMax - zMin; 
     pos = zRange > 0 ? // relative size, a number between 0 and 1 
      (zData[i] - zMin)/(zMax - zMin) : 
      0.5; 
     radii.push(math.round(minSize + pos * (maxSize - minSize))/2); 
    } 

और यह साथ बदलें:

        plotOptions: { 
            bubble: { 
             maxSize: MAXVALUE } }       

:

 for (i = 0, len = zData.length; i < len; i++) { 
     radii.push((zData[i]/maxSize)*100); 
    } 

फिर, जब आप Highcharts प्रारंभ आप निम्नलिखित निर्धारित करने की आवश्यकता जहां सभी चार्टों में MAXVALUE उच्चतम मान है।

फिर आप प्रत्येक टिक के आधार पर अपनी पसंदीदा विधि का उपयोग करके चार्ट के डेटा को अपडेट करेंगे। उदाहरण:

      $("#slider").labeledslider({ 
          value:0, 
          min: 0, 
          max: 7, 
          step: 1, 
          slide: function(event, ui) { 
          adjustHighchart(ui.value); 
          } 
         }); 

यह सुनिश्चित करें कि है कि चार्ट 1 पर एक बुलबुला 100 का एक आकार चार्ट 2 पर एक बुलबुला 200 का एक आकार है, इस स्थिति नहीं होगा अगर आप बस अद्यतन है कि तुलना में छोटी है कर देगा प्रत्येक बार डेटा जब से वर्तमान में प्रदर्शित डेटा के सापेक्ष है।

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