2012-05-26 12 views
12

मैं अपनी साइट में हाईचार्ट्स लागू कर रहा हूं, हालांकि प्रस्तुति बिंदु से चुनौतीपूर्ण साबित हो रहा है।हाइचार्ट्स शून्य मान लेबल हटाते हैं

मेरा डेटा ठीक लोड करता है, लेकिन श्रृंखला के लिए, कुछ मान शून्य हैं। मैं शून्य नहीं होने पर लेबल प्रदर्शित करना चाहता हूं, अन्यथा इसे पढ़ना मुश्किल हो जाता है।

मैं इस तरह कुछ करने के लिए कोशिश कर रहा हूँ:

plotOptions: { 
    column: { 
    stacking: 'normal', 
    dataLabels: { 
      enabled: this.value == 0 ? false : true, 
     color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white' } 
} 
} 

लेकिन यह काम नहीं कर रहा। मैंने मूल्य के बजाय केवल 'यह' का उपयोग करने का प्रयास किया है, लेकिन इसे भी नहीं उठाता है। मुझे लाइब्रेरी से एक डिफ़ॉल्ट विकल्प नहीं मिला है जो मुझे कस्टम कोड बनाने के बिना ऐसा करने की अनुमति देगा।

मैंने कुछ दृष्टिकोणों की जांच की है, लेकिन शून्य श्रृंखला में से एक में हैं। तो मैं अभी भी उन मानों के लिए लेबल प्रस्तुत करना चाहता हूं जो समूह के लिए शून्य नहीं हैं।

मुझे लगता है कि जब एक का कहना है this.y यह पूरे समूह का मूल्य लेता है, और न कि व्यक्तिगत श्रृंखला ...

कोई सुझाव? स्पष्ट रूप से मैं कुछ गलत कर रहा हूँ!

उत्तर

52

क्या आपने dataLabels के लिए formatter विकल्प का उपयोग करने का प्रयास किया है? आपको उसमें अपने डेटा तक पहुंचने में सक्षम होना चाहिए और यह तय करना चाहिए कि लेबल कैसा दिखना चाहिए। यहां आप शून्य की जांच कर सकते हैं और नीचे दिखाए गए null पर वापस आएं।

dataLabels: { 
    enabled: true, 
    color: colors[0], 
    style: { 
     fontWeight: 'bold' 
    }, 
    formatter: function() { 
     if (this.y != 0) { 
      return this.y +'%'; 
     } else { 
      return null; 
     } 
    } 
} 

साथ ही, आपको पता लगाना क्या अपने डेटा का हिस्सा है, पर देखने के फ़ॉर्मेटर समारोह में console.log(this) उपयोग करें ताकि आप वस्तु आप के साथ काम कर रहे हैं देख सकते हैं करने के लिए परेशानी हो रही है। इस काम कर jsfiddle उदाहरण बाहर

की जांच: http://jsfiddle.net/VLmKK/69/

आशा है कि मदद करता है!

अद्यतन: ब्रेट द्वारा टिप्पणियों में उल्लिखित एक अदृश्य लेबल के निर्माण से बचने के लिए खाली स्ट्रिंग के बजाय शून्य वापस लौटें। धन्यवाद।

आप शून्य मानों पर not return anything भी कर सकते हैं।

+0

धन्यवाद gizmotivation, मैंने स्पष्ट करने के लिए प्रश्न संपादित किया है। – Lievcin

+0

@Lievcin: फ़ॉर्मेटर विकल्प प्रत्येक वैल्यू को अलग-अलग तरीके से संभालता है जैसा आप चाहें। मैंने इसे हाईचार्ट नमूना फाइलों में परीक्षण किया। यह केवल 0 अंकों के डेटा बिंदुओं से लेबल हटा दिया गया था। क्या आप इसे आजमा सकते हैं? – christurnerio

+0

बस आपके लिए एक jsfiddle उदाहरण जोड़ा गया। http://jsfiddle.net/gizmovation/VLmKK/ – christurnerio

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