2015-06-04 8 views
5

मैं Google चार्ट के स्टैक्ड कॉलम चार्ट का उपयोग कर रहा हूं, जो मैं प्राप्त करना चाहता हूं वह प्रत्येक कॉलम के शीर्ष पर कुल प्रदर्शित करने के लिए है और मैं इसके लिए एनोटेशन का उपयोग कर रहा हूं। जैसा कि आप छवि को देखते हैं, किसी भी तरह से 5 वें कॉलम (1,307.20) पर केवल एनोटेशन अपेक्षा के अनुसार काम कर रहा है।Google चार्ट, कॉलम के शीर्ष पर एनोटेशन कैसे स्थानांतरित करें

enter image description here

के रूप में मैं जांच, इस Google चार्ट की एक बग की तरह लगता है, इस बग की तरह नीचे

[[Date, Car, Motobike, {role: :annotation}], 
[June 2015, 500, 0, 500], 
[Feb 2015, 500, 600, 1100]] 
[March 2015, 700, 0, 700], 

उपरोक्त डेटा के साथ फरवरी 2015 के लिए एनोटेशन केवल है समझाया जा सकता है जो सही ढंग से प्रदर्शित होता है, दूसरा 2 तब से अंतिम मान नहीं है जब मैं जून और मार्च के लिए अंतिम मान 1 को बदलता हूं, तो एनोटेशन सही तरीके से प्रदर्शित होता है।

तो मैं एक काम के बारे में सोच के आसपास हमेशा शीर्ष पर "गैर शून्य" डेटा को प्रदर्शित करने के लिए है, और यहाँ परिणाम है:

enter image description here

एनोटेशन ठीक से चोटी पर ले जाया जाता है, लेकिन आप के रूप में देख सकते हैं, यह कॉलम के भीतर स्थित है और मैं इसे प्राप्त करना चाहता हूं, इसे कॉलम के शीर्ष पर ले जाना है।

मैं थोड़ी देर के लिए इसके साथ अटक गया हूं, Google दस्तावेज़ीकरण इस मामले के साथ बहुत मदद नहीं करता है। किसी भी मदद अत्यधिक सराहना की जाएगी

उत्तर

3

आप annotations.alwaysOutside विकल्प का उपयोग करना होगा:

annotations.alwaysOutside - बार और स्तंभ चार्ट में, यदि सही पर सेट किया, सभी एनोटेशन के बाहर ड्रॉ बार/कॉलम।

https://google-developers.appspot.com/chart/interactive/docs/gallery/columnchart

देखें हालांकि, एक खड़ी चार्ट के साथ, एनोटेशन वर्तमान में हमेशा कॉलम के अंदर होने के लिए मजबूर हैं। यह अगली बड़ी रिलीज में तय किया जाएगा।

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

6

मुझे एक ही समस्या थी, मेरी कुछ श्रृंखलाओं में मेरा अंतिम मूल्य 0 था इसलिए लेबल शीर्ष पर की बजाय एक्स एक्सिस पर दिखाया जाएगा।

"समाधान के लिए, आप एक साथ एक ComboChart विचार कर सकते हैं: गतिशील डेटा से यह एक वास्तविक चुनौती अंतिम मान सुनिश्चित करने के लिए किया जाएगा कभी नहीं था 0. @dlaliberte मुझे एक संकेत जहां इस टिप्पणी के साथ शुरू करने के लिए दे दी है प्रत्येक कॉलम स्टैक के शीर्ष पर एक बिंदु खींचने के लिए अतिरिक्त श्रृंखला। आपको प्रत्येक बिंदु कहां रखना है, यह जानने के लिए आपको अन्य श्रृंखला की गणना करना होगा। "

मुझे Google की गैलरी से एक कॉम्बो चार्ट मिला और यह देखने के लिए कि मैं क्या कर सकता था, jsfiddle खोला। मैंने ज्यादातर डेटा छोड़ा, लेकिन श्रृंखला नाम लेबल बदल दिया और संख्याओं को थोड़ा आसान बना दिया।ग्राफ़ के उद्देश्य पर पकड़े न जाएं, डेटा को ध्यान में रखते हुए, मैं सिर्फ यह समझना चाहता था कि आखिरी कॉलम 0 (https://jsfiddle.net/L5wc8rcp/1/):

function drawVisualization() { 
    // Some raw data (not necessarily accurate) 
    var data = google.visualization.arrayToDataTable([ 
     ['Month', 'Bolivia', 'Ecuador', 'Madagascar', 'Papua New Guinea', 'Rwanda', 'Total', {type: 'number', role: 'annotation'}], 
     ['Application', 5, 2, 2, 8, 0, 17, 17], 
     ['Friend', 4, 3, 5, 6, 2, 20, 20], 
     ['Newspaper', 6, 1, 0, 2, 0, 9, 9], 
     ['Radio', 8, 0, 8, 1, 1, 18, 18], 
     ['No Referral', 2, 2, 3, 0, 6, 13, 13] 
    ]); 

    var options = { 
     isStacked: true, 
     title : 'Monthly Coffee Production by Country', 
     vAxis: {title: 'Cups'}, 
     hAxis: {title: 'Month'}, 
     seriesType: 'bars', 
     series: {5: {type: 'line'}}, 
    }; 

    var chart = new google.visualization.ComboChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 
पर ग्राफ के शीर्ष पर मेरी एनोटेशन कैसे प्राप्त करें

कि इस ग्राफ है, जो एक अच्छी शुरुआत है उत्पादित:

enter image description here

आप श्रृंखला 5 के बाद से देख सकते हैं (अन्य श्रृंखला के बारे में हमारी कुल) एक type: 'line' है, इसलिए यह हमेशा के शीर्ष की ओर इशारा करेगा ढेर। अब, मुझे अपने चार्ट में लाइन अनिवार्य रूप से नहीं चाहिए, क्योंकि इसका उपयोग निरंतर क्षैतिज योगों की तुलना करने के लिए नहीं किया गया था, इसलिए मैंने lineWidth: 0 के साथ श्रृंखला 5 अपडेट किया, और उसके बाद उस श्रेणी का शीर्षक बनाया 'ताकि यह नहीं होगा एक ढेर (https://jsfiddle.net/Lpgty7rq/) के रूप में कथा में शामिल:

function drawVisualization() { 
    // Some raw data (not necessarily accurate) 
    var data = google.visualization.arrayToDataTable([ 
     ['Month', 'Bolivia', 'Ecuador', 'Madagascar', 'Papua New Guinea', 'Rwanda', '', {type: 'number', role: 'annotation'}], 
     ['Application', 5, 2, 2, 8, 0, 17, 17], 
     ['Friend', 4, 3, 5, 6, 2, 20, 20], 
     ['Newspaper', 6, 1, 0, 2, 0, 9, 9], 
     ['Radio', 8, 0, 8, 1, 1, 18, 18], 
     ['No Referral', 2, 2, 3, 0, 6, 13, 13] 
    ]); 

    var options = { 
     isStacked: true, 
     title : 'Monthly Coffee Production by Country', 
     vAxis: {title: 'Cups'}, 
     hAxis: {title: 'Month'}, 
     seriesType: 'bars', 
     series: {5: {type: 'line', lineWidth: 0}}, 
    }; 

    var chart = new google.visualization.ComboChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 

और देखा!

enter image description here

1

उपयोग alwaysOutside: true

annotations: { 
    textStyle: { 
     color: 'black', 
     fontSize: 11, 
    }, 
    alwaysOutside: true 
} 
संबंधित मुद्दे