2016-08-09 15 views
9

पर लेबल जोड़ना मेरे आवेदन के लिए बार चार्ट के प्रत्येक बार पर एक लेबल होना आवश्यक है। MPAndroidChart के साथ ऐसा करने का कोई तरीका है? मुझे प्रोजेक्ट विकी/जावाडॉक्स पर ऐसा करने का कोई तरीका नहीं मिला।MPAndroidChart - बार चार्ट

यदि ऐसा करने का कोई तरीका नहीं है तो क्या कोई और सॉफ्टवेयर है जो मुझे अनुमति देगा?

enter image description here

उत्तर

22

अपडेट किया गया उत्तर (MPAndroidChart v3.0.1)

इस तरह के एक आमतौर पर इस्तेमाल किया सुविधा होने के नाते, पुस्तकालय का v3.0.1 IndexAxisValueFormatter वर्ग वास्तव में इस उद्देश्य के लिए कहा, तो यह सिर्फ एक लाइन है कोड की अब:

mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels)); 

मूल जवाब नीचे अभी भी लागू होता से Protip

मूल उत्तर (MPAndroidChart v3.0.0)

पुस्तकालय के v3.0.0 के साथ

वहाँ सलाखों के लिए लेबल की स्थापना का कोई सीधा रास्ता है, लेकिन वहां ValueFormatter इंटरफ़ेस का उपयोग करता है एक नहीं बल्कि सभ्य वैकल्पिक हल है।

इस तरह एक नया फ़ॉर्मेटर बनाएँ:

public class LabelFormatter implements IAxisValueFormatter { 
    private final String[] mLabels; 

    public LabelFormatter(String[] labels) { 
     mLabels = labels; 
    } 

    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 
     return mLabels[(int) value]; 
    } 
} 

फिर अपने एक्स-अक्ष को यह फ़ॉर्मेटर सेट (यह मानते हुए पहले से बनाई गई एक String[] लेबल युक्त):

mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels)); 

Protip : यदि आप बार चार्ट में ज़ूम करते समय दिखाई देने वाले अतिरिक्त लेबल को हटाना चाहते हैं, तो आप ग्रैन्युलरिटी सुविधा का उपयोग कर सकते हैं:

XAxis xAxis = mBarChart.getXAxis(); 
xAxis.setGranularity(1f); 
xAxis.setGranularityEnabled(true); 
+0

जोड़कर ऊपर स्तंभ लेबल सेट कर सकते हैं तुम मुझे कैसे xAxis –

+0

आप Protip मेरा दिन बचाया पर लेबल के साथ कई बार ग्राफ को दिखाने के लिए पर कुछ सभ्य स्रोत कोड प्रदान कर सकते हैं। धन्यवाद! @ TR4Android –

+0

अपना उत्तर अद्यतित रखने के लिए धन्यवाद। इस सवाल से बहुत कुछ पूछा जाता है इसलिए हमें डुप्लिकेट को रीडायरेक्ट करना चाहिए –

1

आप इस लाइन जाने कोड

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
संबंधित मुद्दे