2017-09-12 4 views
9

मैं अपने मैकोज़ ऐप में एक साधारण लाइन ग्राफ़ प्लॉट करने के लिए कोरप्लॉट का उपयोग कर रहा हूं।कोरप्लॉट लाइनग्राफ - मानों को देखने के लिए ग्राफ पर होवर/क्लिक करें - मैकोज़

CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero]; 

CPTTheme *theme  = [CPTTheme themeNamed:kCPTDarkGradientTheme]; 
[newGraph applyTheme:theme]; 
self.graph = newGraph; 
self.hostView.hostedGraph = newGraph; 

newGraph.plotAreaFrame.paddingTop = 10.0; 
newGraph.plotAreaFrame.paddingBottom = 30.0; 
newGraph.plotAreaFrame.paddingLeft = 40.0; 
newGraph.plotAreaFrame.paddingRight = 10.0; 

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace; 
    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@(1.0) length:[NSNumber numberWithUnsignedInteger:[dataArray count]-1]]; 
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@102.0]; 
    plotSpace.allowsUserInteraction = YES; 

CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet; 
    CPTXYAxis *x   = axisSet.xAxis; 
    //x.majorIntervalLength = @1; 
    x.majorIntervalLength = [NSNumber numberWithInt:numberOfIntervalsX]; 
    x.orthogonalPosition = @(0); 
    x.minorTicksPerInterval = 0; 
    x.labelOffset = 0; 

    CPTXYAxis *y = axisSet.yAxis; 
    y.majorIntervalLength = @5; 
    y.minorTicksPerInterval = 0; 
    y.orthogonalPosition = @(1.0); 
    y.labelOffset = 0.0; 

CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] init]; 
    CPTMutableLineStyle *lineStyle = [dataSourceLinePlot.dataLineStyle mutableCopy]; 
    lineStyle.lineWidth    = 2.; 
    lineStyle.lineColor    = [CPTColor greenColor]; 
    dataSourceLinePlot.dataLineStyle = lineStyle; 


    dataSourceLinePlot.dataSource = self; 
    [newGraph addPlot:dataSourceLinePlot]; 

मैं उम्मीद कर रहा था कि मूल्य देखने के लिए होवर/क्लिक डिफ़ॉल्ट व्यवहार होगा लेकिन ऐसा नहीं लगता है। मैंने मंचों की खोज करने की कोशिश की है लेकिन कोई भाग्य नहीं है। मुझे लगता है कि यह वास्तव में सीधे आगे होगा। यकीन नहीं है कि मुझे कुछ याद आ रही है।

उत्तर

4

जहां तक ​​मुझे पता है, आप इंप्रेशन सही हैं, डेटा वैल्यू ओवरले में कोई निर्मित नहीं है। हालांकि, आप इसे स्वयं बना सकते हैं। कोरप्लॉट में indexOfVisiblePointClosestToPlotAreaPoint: फ़ंक्शन है जो आपको अपने चार्ट में लेबल डब्ल्यू/पॉइंट मान जोड़ने के लिए आवश्यक संदर्भ देना चाहिए।

  • (NSUInteger) indexOfVisiblePointClosestToPlotAreaPoint:

निकटतम बिंदु के सूचकांक, या NSNotFound रिटर्न अगर वहाँ नहीं दिखाई है।

फिर आप अपने ग्राफ hostingview उपवर्ग माउस निर्देशांक कब्जा करने के लिए एक माउस आंदोलन घटना को लागू है, और वहाँ से आप कैसे अंक प्रदर्शित करने के लिए चुना है करना चाहते हैं जो कुछ भी तर्क कर सकते हैं।

मैं नहीं कहूंगा कि इसे लागू करना विशेष रूप से आसान है, लेकिन कम से कम इसका सीधा पक्ष है। मुझे उम्मीद है यह मदद करेगा!

संदर्भ:

http://core-plot.github.io/MacOS/interface_c_p_t_scatter_plot.html#a57eacc8261a4d4a1399f1196be786cff https://stackoverflow.com/a/21819342/357288

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