संपादित करें: मुझे लगता है कि मेरा प्रश्न बेहतर वाक्यांश है: मेरे पास वाई-अक्ष कैसे हो सकती है जो शून्य से शुरू नहीं होती है? ऐसा लगता है कि x-axis हमेशा y = 0 पर रखा जाता है, लेकिन मैं एक्स-अक्ष को वाई-अक्ष पर कुछ सकारात्मक संख्या पर होना चाहता हूं।आईफोन पर कोर-प्लॉट के साथ मेरा एक्स-अक्ष क्यों नहीं दिखाएगा?
यहाँ अधिक नियमित रूप से डेटा के साथ एक ग्राफ है ... मैं सिर्फ इच्छा x- अक्ष के बजाय, साजिश (लगभग 77) के लिए न्यूनतम y- मान में रखा गया था 0.
पर
यहां वह फ़ंक्शन है जिसका उपयोग मैं ग्राफ बनाने के लिए करता हूं।
यह कोड का एक पूरा समूह है, और मुझे पूरा यकीन नहीं है कि एक्स-अक्ष प्रदर्शित करने के लिए कौन सा टुकड़ा बंद हो सकता है।
क्या एक्स-अक्ष प्रदर्शित नहीं हो सकता है मेरे डेटा के साथ कुछ करना है?
- (void) showGraph:(SavedDetailScreen*)dataSource {
// create the graph and add it to the view
CPXYGraph *graph = [[CPXYGraph alloc] initWithFrame: CGRectZero];
graph.plotArea.masksToBorder = NO;
CPLayerHostingView *graphView = [[CPLayerHostingView alloc] initWithFrame:CGRectMake(0,0, 280, 240)];
[self addSubview:graphView];
graphView.hostedLayer = graph;
graph.paddingLeft = 50.0;
graph.paddingTop = 20.0;
graph.paddingRight = 10.0;
graph.paddingBottom = 40.0;
// set up the ranges for the graph axis
float minElevation = dataSource.track.tbStats.minAlt;
float maxElevation = dataSource.track.tbStats.maxAlt-dataSource.track.tbStats.minAlt;
float minDistance = 0.0f;
float maxDistance = dataSource.track.tbStats.totalDistance;
CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minDistance)
length:CPDecimalFromFloat(maxDistance)];
plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minElevation)
length:CPDecimalFromFloat(maxElevation)];
// style the graph with white text and lines
CPTextStyle *whiteText = [CPTextStyle textStyle];
whiteText.color = [CPColor whiteColor];
CPLineStyle *whiteStyle = [CPLineStyle lineStyle];
whiteStyle.lineColor = [CPColor whiteColor];
whiteStyle.lineWidth = 2.0f;
// set up the axis
CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;
CPXYAxis *x = axisSet.xAxis;
CPXYAxis *y = axisSet.yAxis;
x.majorIntervalLength = CPDecimalFromFloat(maxDistance/10.0f);
x.minorTicksPerInterval = 0;
x.majorTickLineStyle = whiteStyle;
x.minorTickLineStyle = whiteStyle;
x.axisLineStyle = whiteStyle;
x.minorTickLength = 5.0f;
x.majorTickLength = 10.0f;
x.labelOffset = 3.0f;
x.labelTextStyle = whiteText;
y.majorIntervalLength = CPDecimalFromFloat(maxElevation/5.0f);
y.minorTicksPerInterval = 0;
y.majorTickLineStyle = whiteStyle;
y.minorTickLineStyle = whiteStyle;
y.axisLineStyle = whiteStyle;
y.minorTickLength = 5.0f;
y.majorTickLength = 10.0f;
y.labelOffset = 3.0f;
y.labelTextStyle = whiteText;
CPScatterPlot *plot = [[[CPScatterPlot alloc] initWithFrame:graph.bounds] autorelease];
plot.dataLineStyle.lineWidth = 2.0f;
plot.dataLineStyle.lineColor = [CPColor blueColor];
plot.dataSource = dataSource;
[graph addPlot:plot];
CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol];
greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
greenCirclePlotSymbol.size = CGSizeMake(2.0, 2.0);
plot.plotSymbol = greenCirclePlotSymbol;
}
डेटा सब ठीक है। ग्राफ दिखाता है, वाई-अक्ष दिखाता है, वाई-अक्ष लेबल दिखाता है, साजिश दिखाती है ... बस एक्स-अक्ष दिखाई नहीं देती है, न ही इसके लेबल। डेटा के साथ एकमात्र समस्या वाई-मान कभी-कभी न्यूनतम वाई-मान से कम हो सकती है। क्या वह गड़बड़ चीजें होगी? –
क्षमा करें, इस ढांचे के साथ बहुत परिचित नहीं है। लेकिन, आपके पास इस विधि के बारे में क्या है: plotRangeWithLocation: CPDecimalFromFloat (minDistance) लंबाई: CPDecimalFromFloat (maxDistance)]; क्या यह लंबाई के लिए सही मूल्य है? उदाहरण के लिए। alt के साथ आपके पास अधिकतम डेटा अधिकतम और अधिकतम के बीच अंतर है, लेकिन दूरी के लिए आपके पास 0 और डेटासॉर अधिकतम के बीच है। –
इसके अलावा, एक सामान्य अवलोकन के रूप में, ऐसा लगता है कि पूरा ग्राफ वहां हो सकता है लेकिन कुछ कम वाई मानों के कारण एक्स अक्ष काटा जा रहा है। क्या आप डेटा का एक अधिक सरल डमी सेट बना सकते हैं (शायद जहां सभी क्षैतिज रेखा उत्पन्न करने के लिए समान हैं) यह देखने के लिए कि क्या एक्स अक्ष दिखाई देती है? –