2012-11-22 32 views
5

पर अनुकूलित मार्कर/टूलटिप्स मैं लाइन चार्ट बनाने के लिए डोजो 1.8 का उपयोग कर रहा हूं जिसका उपयोग मैं समय श्रृंखला डेटा प्लॉट करने के लिए कर रहा हूं। डेटा में 288 (12x24) डेटा पॉइंट्स देने वाली 24 अवधि में हर 5 मिनट में नमूने शामिल होते हैं।एक डोजो लाइन चार्ट

चार्ट पर टूलटिप्स रखने के लिए, मुझे चार्ट पर मार्कर सक्षम करने की आवश्यकता है (डोजो को इसकी आवश्यकता है)। समस्या यह है कि डिफ़ॉल्ट रूप से, डोजो प्रत्येक डेटा बिंदु के लिए एक मार्कर बनाता है और इसके परिणामस्वरूप बहुत अधिक मार्कर होते हैं। आदर्श रूप से, मैं नवीनतम डेटा पॉइंट के लिए एक सिंगल मार्कर दिखा सकता हूं और शायद हर घंटे या दो मार्कर।

मार्कर की उपस्थिति को अनुकूलित करना संभव है लेकिन अब तक मैं आवृत्ति को अनुकूलित करने का कोई तरीका नहीं ढूंढ पाया जिसके साथ मार्कर दिखाई देते हैं। किसी भी सुझाव का स्वागत किया जाएगा।

उत्तर

4

MarkersOnly मॉड्यूल उपयोग करके देखें:

require(["dojox/charting/Chart", "dojox/charting/axis2d/Default", "dojox/charting/plot2d/Lines", "dojox/charting/plot2d/MarkersOnly", "dojox/charting/Series", "dojo/ready"], 
function(Chart, Default, Lines, MarkersOnly, Series, ready) { 
    ready(function(){ 
    var chart = new Chart("simplechart"); 
     chart.addPlot("plot_lines", { type: Lines }); 
     chart.addPlot("plot_markers", { type: MarkersOnly }); 
     chart.addAxis("x"); 
     chart.addAxis("y", {vertical:true}); 
     chart.addSeries("series_lines", [4, 2, 6, 4, 5, 8, 8, 1, 7, 9]); 
     // if you want your markers at data points 6 and 7; 
     chart.addSeries("series_markers", [{x:3,y:6}, {x:9,y:7}], { plot: "plot_markers" , stroke: { color: "blue" } }); 
     chart.render(); 
    }); 
}); 
+1

धन्यवाद, मुझे लगता है कि मुझे यह हल हो गया है। मूल रूप से, मैं एक और श्रृंखला नहीं जोड़ना चाहता था क्योंकि मेरे पास एक किंवदंती भी है और मैं नहीं चाहता था कि मार्कर श्रृंखला वहां दिखाई दे। मैंने इसे वास्तविक डेटा की साजिश करके, फिर पौराणिक कथाओं का निर्माण करके, मार्कर श्रृंखला जोड़कर हल किया। इसका मतलब यह है कि मार्कर श्रृंखला किंवदंती पर प्रकट नहीं होती है क्योंकि यह स्वचालित रूप से अपडेट नहीं होती है। – PhilDin

0

मैं वास्तव में प्रलेखन के साथ एक कठिन समय चल रहा था और मैं बस यह समझ से बाहर। एक कामकाजी उदाहरण के साथ Here is a jsFiddle। मैंने एंडी डब्ल्यू के समाधान का उपयोग किया और मार्करों को अनुकूलित करने के लिए DojoToolkit.org पर जो भी पाया, उसके साथ काम किया।

सबसे पहले आपको मार्कर बनाने की आवश्यकता है केवल एंडी बताते हैं, तो आप मार्कर को कस्टमाइज़ कर सकते हैं। आप सभी टुकड़े on this documentation पा सकते हैं।

//found on http://dojotoolkit.org/reference-guide/1.8/dojox/charting.html 
//CIRCLE:   "m-3,0 c0,-4 6,-4 6,0 m-6,0 c0,4 6,4 6,0", 
//SQUARE:   "m-3,-3 l0,6 6,0 0,-6 z", 
//DIAMOND:   "m0,-3 l3,3 -3,3 -3,-3 z", 
//CROSS:   "m0,-3 l0,6 m-3,-3 l6,0", 
//X:    "m-3,-3 l6,6 m0,-6 l-6,6", 
//TRIANGLE:   "m-3,3 l3,-6 3,6 z", 
//TRIANGLE_INVERTED:"m-3,-3 l3,6 3,-6 z" 

var customTheme = new SimpleTheme({ 
    markers: { 
        DIAMOND: "m0,-3 l3,3 -3,3 -3,-3 z", 
        CROSS: "m0,-3 l0,6 m-3,-3 l6,0" 
       } 
      }); 

var chart = new Chart("chartCustomMarkers", 
    { 
      title: "Custom Markers Chart", 
      titlePos: "top", 
      titleFont: "normal normal normal 15pt Arial", 
    }); 
chart.addPlot("default", { type: MarkersOnly }) 
    .addAxis("x") 
    .addAxis("y", { vertical: true }) 
    .addSeries("Series 1", [1, 2, 2, 3, 4, 5, 5, 7]) 
    .addSeries("Series 2", [2, 5, 4, 8, 5, 6, 6, 1]) 
    .setTheme(customTheme) 
    .render(); 

मेरे सहकर्मियों में से एक ने मुझे दिखाया कि एसवीजी पथ को कैसे अनुकूलित करें (अपना स्वयं का पैटर्न बनाएं)। अधिक जानकारी के लिए बस go here