का उचित प्रारूपण डेटा का एक सेट ग्राफ़ करने के लिए कोरप्लॉट का उपयोग कर रहा हूं। मेरे एक्स-अक्ष के लिए डेटा में तिथियां होती हैं, जबकि मेरे वाई-अक्ष के डेटा में फ्लोट होते हैं (जो मैं फिर NSNumber में बदल जाता हूं)। मुझे फ़ीड से डेटा मिल रहा है, और फ़ीड बड़ी संख्या में दशमलव के साथ संख्या देता है, उदाहरण के लिए: 0.46673718852844, 4.59392222219, 353.1293012045। मैं कोड का निम्न भाग का उपयोग कर रहा ठीक से y- अक्ष फ़ॉर्मेट करने के लिए:आईफोन कोरप्लॉट वाई-अक्ष
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:3];
[numberFormatter setPositiveFormat:@"###0.000"];
CPTXYAxis *y = axisSet.yAxis;
y.labelingPolicy = CPTAxisLabelingPolicyAutomatic;
y.minorTicksPerInterval = 1;
y.preferredNumberOfMajorTicks = 5;
y.labelFormatter = numberFormatter;
ज्यादातर मामलों में, सब कुछ ठीक काम करता है। हालांकि, कभी-कभी यह धुरी के साथ कई स्थितियों पर एक ही मान प्रदर्शित करता है। नीचे चित्र देखें:
मूल्यों को सही ढंग से प्रस्तुत कर रहे हैं, मैं सिर्फ अनावश्यक (0.466) लेबल से बचने के लिए चाहते हैं। मैं भी numberForPlot
विधि में 3 दशमलव के संख्या पूर्णांक बनाना की कोशिश की है:
if(fieldEnum == CPTScatterPlotFieldY)
{
float floatNum = r.value;
floatNum *= 1000;
int intValue = (int) floatNum;
float decimal = floatNum - intValue;
if (decimal > 0.5) {
intValue++;
}
floatNum = intValue /1000.0;
return [NSNumber numberWithFloat:floatNum];
}
लेकिन वहाँ लेबल में कोई अंतर नहीं है।
समस्या यह है कि यह मेरे आवेदन में एकमात्र ग्राफ नहीं है, और 5 टिक आमतौर पर सर्वश्रेष्ठ दिखते हैं। अंक के साथ एक ही चीज़ - तीन आमतौर पर पर्याप्त है, 4 अंकों को दिखाने की आवश्यकता नहीं है। आह, अनुमान है कि मुझे ग्राफ के कुछ मैन्युअल सेटअप करना होगा। धन्यवाद वैसे भी – Maggie
मेरा समाधान अक्ष श्रेणी के आधार पर गतिशीलता की संख्या को गतिशील रूप से बदलना था। – Jackson