Core Plot source code and example applications

Related tags

Charts core-plot
Overview

Core Plot

Cocoa plotting framework for macOS, iOS, and tvOS.

Build Status Version Status license MIT Platform Carthage compatible

Introduction

Core Plot is a 2D plotting framework for macOS, iOS, and tvOS. It is highly customizable and capable of drawing many types of plots. See the Example Graphs wiki page and the example applications for examples of some of its capabilities.

Getting Started

See the High Level Design Overview wiki for an overview of Core Plot's architecture and the Using Core Plot in an Application wiki for information on how to use Core Plot in your own application.

Documentation

Documentation of the Core Plot API and high-level architecture can be found in the following places:

Where to Ask For Help

Q&A Sites

Social Networks

Contributing to Core Plot

Core Plot is an open source project hosted on GitHub. There are two code repositories under the main project:

  • core-plot: This is main code repository with the framework and all examples. This is where you will find the release packages, wiki pages, and issue tracker.

  • core-plot.github.io: This is the HTML API documentation. You can view the pages online at http://core-plot.github.io.

Coding Standards

Everyone has a their own preferred coding style, and no one way can be considered right. Nonetheless, in a project like Core Plot, with many developers contributing, it is worthwhile defining a set of basic coding standards to prevent a mishmash of different styles which can become frustrating when navigating the code base. See the file CONTRIBUTING.md found in the .github directory of the project source for specific guidelines.

Core Plot includes a script to run Uncrustify on the source code to standardize the formatting. All source code will be formatted with this tool before being committed to the Core Plot repository.

Testing

Core Plot is intended to be applied in scientific, financial, and other domains where correctness is paramount. In order to assure the quality of the framework, unit testing is integrated. Good test coverage protects developers from introducing accidental regressions, and helps them to experiment and refactor without breaking existing code. See the unit testing wiki page for instructions on how to build unit tests for any new code you add to the project.

Support Core Plot

Flattr this

Comments
  • Problem with cocoapods and Core Plot HEAD

    Problem with cocoapods and Core Plot HEAD

    Hi. If I understand it correctly the cocoapods podspecs for Core Plot now points to the HEAD. In the latest version there are a couple of lines that should be commented out for Core Plot to compile properly. The lines are in CPTAnimation:

    IMP setterMethod = [boundObject methodForSelector:boundSetter]; setterMethod(boundObject, boundSetter, tweenedValue);

    IMP setterMethod = [boundObject methodForSelector:boundSetter]; setterMethod(boundObject, boundSetter, buffer);

    And in CPTAnimationPlotRangePeriod: IMP getterMethod = [boundObject methodForSelector:boundGetter]; CPTPlotRange *current = getterMethod(boundObject, boundGetter);

    I assume these are upcoming implementations. I can of course edit these out myself, but its a problem when running CI unit test with automatic pod update.

    Thanks for a great product. Cheers, Trond

    opened by trondkr 20
  • scroll doesn't work well

    scroll doesn't work well

    Using CorePlot version 1.6. Running iOS 8.3.

    I'm using Core-Plot with ScatterPlot for to represent multiples lines. When I scroll, the graph moves to jumps and it locks. I don't know what happens. Can you help me? Here my code:

    #import <UIKit/UIKit.h>
    #import "CorePlot-CocoaTouch.h"
    @interface TemporalLineViewController :UIViewController<CPTPlotSpaceDelegate,CPTPlotDataSource,
    CPTScatterPlotDelegate>
    
    @property (strong, nonatomic) IBOutlet CPTGraphHostingView *hostingView;
    
    @end
    
    
    @interface TemporalLineViewController (){
        NSMutableDictionary *dates;
    }
    @property (nonatomic, readwrite, strong) NSArray *plotData;
    @end
    
    @implementation TemporalLineViewController
    -(CPTGraph *)createGraph{
        //Create host view
        //self.hostView = [[CPTGraphHostingView alloc] initWithFrame:[[UIScreen mainScreen]bounds]];
        //self.hostView = [[CPTGraphHostingView alloc] initWithFrame:CGRectMake(viewGraph.frame.origin.x, viewGraph.frame.origin.y, 500, viewGraph.frame.size.height)];
        //self.view=self.hostView;
    
        CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:hostingView.bounds];
        [graph applyTheme:[CPTTheme themeNamed:kCPTSlateTheme]];
        //self.hostView.hostedGraph = graph;
        hostingView.hostedGraph=graph;
    
        // Axes
        CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
        CPTXYAxis *x          = axisSet.xAxis;
        x.majorIntervalLength         = CPTDecimalFromDouble(ONEDAY);
        x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
        x.minorTicksPerInterval       = 0;
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd/MM/yyyy"];
        //dateFormatter.dateStyle = kCFDateFormatterShortStyle;
        CPTTimeFormatter *timeFormatter = [[CPTTimeFormatter alloc] initWithDateFormatter:dateFormatter];
        timeFormatter.referenceDate = [[NSDate alloc]init];
        x.labelFormatter            = timeFormatter;
        x.labelRotation             = CPTFloat(M_PI_4);
    
        CPTXYAxis *y = axisSet.yAxis;
        y.hidden=YES;
        y.orthogonalCoordinateDecimal = CPTDecimalFromInt(0);
        return graph;
    }
    
    -(void)createScatterPlot{
    
        CPTGraph * graph = [self createGraph];
    
        CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
        NSTimeInterval xLow       = 0.0;
        plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(xLow) length:CPTDecimalFromDouble(ONEDAY * 10.0)];
        plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(-1) length:CPTDecimalFromDouble(5.0)];
        plotSpace.allowsUserInteraction = YES;
        plotSpace.allowsMomentum = YES;
    
        // Create a plot that uses the data source method
        CPTScatterPlot *diagnosticPlot = [self createScatterPlotWithIdentifier:DIAGNOSTIC_PLOT withLineColor:[CPTColor greenColor] withFillColor:[CPTColor greenColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *vaccinePlot = [self createScatterPlotWithIdentifier:VACCINE_PLOT withLineColor:[CPTColor blackColor] withFillColor:[CPTColor blackColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *interventionPlot = [self createScatterPlotWithIdentifier:INTERVENTION_PLOT withLineColor:[CPTColor blueColor] withFillColor:[CPTColor blueColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *smokingHabitPlot = [self createScatterPlotWithIdentifier:SMOKING_HABIT_PLOT withLineColor:[CPTColor yellowColor] withFillColor:[CPTColor yellowColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *menstrualPlot = [self createScatterPlotWithIdentifier:MENSTRUAL_PLOT withLineColor:[CPTColor redColor] withFillColor:[CPTColor redColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *menstrualTreatmentPlot = [self createScatterPlotWithIdentifier:MENSTRUAL_TREATMENT_PLOT withLineColor:[CPTColor orangeColor] withFillColor:[CPTColor orangeColor]];
        // Create a plot that uses the data source method
        CPTScatterPlot *psychomotorMilestonePlot = [self createScatterPlotWithIdentifier:PSYCHOMOTOR_MILESTONE_PLOT withLineColor:[CPTColor purpleColor] withFillColor:[CPTColor purpleColor]];
    
        [graph addPlot:vaccinePlot toPlotSpace:plotSpace];
        [graph addPlot:diagnosticPlot toPlotSpace:plotSpace];
        [graph addPlot:interventionPlot toPlotSpace:plotSpace];
        [graph addPlot:smokingHabitPlot toPlotSpace:plotSpace];
        [graph addPlot:menstrualPlot toPlotSpace:plotSpace];
        [graph addPlot:menstrualTreatmentPlot toPlotSpace:plotSpace];
        [graph addPlot:psychomotorMilestonePlot toPlotSpace:plotSpace];   
    }
    
    -(CPTScatterPlot *)createScatterPlotWithIdentifier:(NSString *)identifier withLineColor:(CPTColor *)lineColor withFillColor:(CPTColor *) fillColor{
        CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] init];
        dataSourceLinePlot.identifier = identifier;
    
        CPTMutableLineStyle *lineStyle = [dataSourceLinePlot.dataLineStyle mutableCopy];
        lineStyle.lineWidth              = 3.0;
        lineStyle.lineColor              = lineColor;
        dataSourceLinePlot.dataLineStyle = lineStyle;
        CPTPlotSymbol *plotSymbol2 = [CPTPlotSymbol ellipsePlotSymbol];
        plotSymbol2.fill               = [CPTFill fillWithColor:fillColor];
        plotSymbol2.size               = CGSizeMake(10.0, 10.0);
        dataSourceLinePlot.plotSymbol = plotSymbol2;
        dataSourceLinePlot.dataSource = self;
    
        return dataSourceLinePlot;
    }
    
    -(void)generateData{
        NSMutableArray *data = [NSMutableArray array];
    //create different data structure
        [data addObject:[self createDiagnosticData]];
        [data addObject:[self createVaccineData]];
        [data addObject:[self createInterventionData]];
        [data addObject:[self createSmokingHabitData]];
        [data addObject:[self createMenstrualData]];
        [data addObject:[self createMenstrualTreatmentData]];
        [data addObject:[self createPsychomotorMilestoneData]];
        self.plotData = data;
    }
    
    #pragma mark -
    #pragma mark Plot Data Source Methods
    
    -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
    {
        NSLog(@"numberOfRecordsForPlot");
        if ([plot.identifier isEqual:DIAGNOSTIC_PLOT]) {
            NSMutableArray *data = self.plotData[0];
            return data.count;
        }else if([plot.identifier isEqual:VACCINE_PLOT]){
            NSMutableArray *data = self.plotData[1];
            return data.count;
        } else if([plot.identifier isEqual:INTERVENTION_PLOT]){
            NSMutableArray *data = self.plotData[2];
            return data.count;
        } else if([plot.identifier isEqual:SMOKING_HABIT_PLOT]){
            NSMutableArray *data = self.plotData[3];
            return data.count;
        } else if([plot.identifier isEqual:MENSTRUAL_PLOT]){
            NSMutableArray *data = self.plotData[4];
            return data.count;
        } else if([plot.identifier isEqual:MENSTRUAL_TREATMENT_PLOT]){
            NSMutableArray *data = self.plotData[5];
            return data.count;
        } else if([plot.identifier isEqual:PSYCHOMOTOR_MILESTONE_PLOT]){
            NSMutableArray *data = self.plotData[6];
            return data.count;
        }
        return 0;
    }
    
    -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
    {
        NSLog(@"numberForPlot");
        if ([plot.identifier isEqual:DIAGNOSTIC_PLOT]) {
            NSMutableArray *data = self.plotData[0];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            if ([str intValue]==0) {
                return nil;
            }
            return data[index][@(fieldEnum)];
        }else if([plot.identifier isEqual:VACCINE_PLOT]){
            NSMutableArray *data = self.plotData[1];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            return data[index][@(fieldEnum)];
        }else if([plot.identifier isEqual:INTERVENTION_PLOT]){
            NSMutableArray *data = self.plotData[2];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            return data[index][@(fieldEnum)];
        }else if ([plot.identifier isEqual:SMOKING_HABIT_PLOT]) {
            NSMutableArray *data = self.plotData[3];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            if ([str intValue]==0) {
                return nil;
            }
            return data[index][@(fieldEnum)];
        }else if ([plot.identifier isEqual:MENSTRUAL_PLOT]) {
            NSMutableArray *data = self.plotData[4];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            if ([str intValue]==0) {
                return nil;
            }
            return data[index][@(fieldEnum)];
        }else if ([plot.identifier isEqual:MENSTRUAL_TREATMENT_PLOT]) {
            NSMutableArray *data = self.plotData[5];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            if ([str intValue]==0) {
                return nil;
            }
            return data[index][@(fieldEnum)];
        }else if([plot.identifier isEqual:PSYCHOMOTOR_MILESTONE_PLOT]){
            NSMutableArray *data = self.plotData[6];
            NSString *str = [NSString stringWithFormat:@"%@",(data[index][@(fieldEnum)])];
            return data[index][@(fieldEnum)];
        }
        return nil;
    }
    
    Question 
    opened by oremag14jf 19
  • dataSource not available with xCode version 7.3

    dataSource not available with xCode version 7.3

    After updated xCode latest version (7.3). There is an error with core plot datasource. (Previous version its worked.)

    datasource not available

    this is original @property (nonatomic, readwrite, cpt_weak_property) __cpt_weak id<CPTPlotDataSource> dataSource; and i just remove __cpt_weak it worked. @property (nonatomic, readwrite, cpt_weak_property) id<CPTPlotDataSource> dataSource; i don't know can i remove __cpt_weak. @eskroch

    Bug Priority-Low 
    opened by declareerror 17
  • iOS - Xcode 10 New Build System - Dependent Project Install: Failed to emit precompiled header

    iOS - Xcode 10 New Build System - Dependent Project Install: Failed to emit precompiled header

    I have been building my iOS app against the tip of the release 2.3 branch for several months with Core Plot integrating into my project as a dependent project install. I can build my app just fine using the Xcode 10 Legacy Build System, but when I try using Xcode 10's New Build System, I get the following errors:

    
    Showing All Issues
    PrecompileSwiftBridgingHeader normal x86_64 (in target: myapp)
        cd /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main
        /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -target x86_64-apple-ios10.0-simulator -enable-objc-interop -sdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk -I /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Products/DebugDev-iphonesimulator -F /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Products/DebugDev-iphonesimulator -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/Google-Maps/Base/Frameworks -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/Google-Maps/Maps/Frameworks -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/Crashlytics/iOS -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/Fabric/iOS -F /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/Firebase/Firebase/Analytics -enable-testing -g -module-cache-path /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 4 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -working-directory -Xcc /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/myapp-generated-files.hmap -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/myapp-own-target-headers.hmap -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/myapp-all-target-headers.hmap -Xcc -iquote -Xcc /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/myapp-project-headers.hmap -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Products/DebugDev-iphonesimulator/include -Xcc -IVendor/CorePlot/framework -Xcc -IVendor/CorePlot/framework/CocoaPods -Xcc -IVendor/CorePlot/framework/Info -Xcc -IVendor/CorePlot/framework/MacOnly -Xcc -IVendor/CorePlot/framework/Source -Xcc -IVendor/CorePlot/framework/TestResources -Xcc -IVendor/CorePlot/framework/iPhoneOnly -Xcc -IVendor/CorePlot/framework/xcconfig -Xcc -IVendor/Outbound/Outbound -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/DerivedSources/x86_64 -Xcc -I/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/myapp.build/DebugDev-iphonesimulator/myapp.build/DerivedSources -Xcc -DDEBUG=1 -serialize-diagnostics-path /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/PrecompiledHeaders/BridgingHeader-1KP8MC9VFWG0W.dia /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h -index-store-path /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Index/DataStore -emit-pch -pch-output-dir /Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/PrecompiledHeaders
    
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:
    #import "CorePlot-CocoaTouch.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:
    #import "CPTAnnotationHostLayer.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:
    #import "CPTLayer.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:
    #import "CPTResponder.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:
    #import "CPTPlatformSpecificDefines.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTPlatformSpecificDefines.h:3:9: error: unknown type name 'NSImage'
    typedef NSImage CPTNativeImage; ///< Platform-native image format.
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:
    #import "CorePlot-CocoaTouch.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:
    #import "CPTAnnotationHostLayer.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:
    #import "CPTLayer.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:
    #import "CPTResponder.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:
    #import "CPTPlatformSpecificDefines.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTPlatformSpecificDefines.h:4:9: error: unknown type name 'NSEvent'; did you mean 'UIEvent'?
    typedef NSEvent CPTNativeEvent; ///< Platform-native OS event.
            ^
    /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h:19:8: note: 'UIEvent' declared here
    @class UIEvent, UIScreen, NSUndoManager, UIViewController;
           ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:
    #import "CorePlot-CocoaTouch.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:25:9: note: in file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:25:
    #import "CPTGraphHostingView.h"
            ^
    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTGraphHostingView.h:1:9: error: 'Cocoa/Cocoa.h' file not found
    #import <Cocoa/Cocoa.h>
            ^
    3 errors generated.
    <unknown>:0: error: failed to emit precompiled header '/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/PrecompiledHeaders/BridgingHeader-swift_23625EL1TPX55-clang_31JBRG5UTLUD1.pch' for bridging header '/Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h'
    
    

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:9: In file included from ### /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTPlatformSpecificDefines.h:3:9: Unknown type name 'NSImage'

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:8:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTAnnotationHostLayer.h:2:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTLayer.h:2:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/Source/CPTResponder.h:1:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTPlatformSpecificDefines.h:4:9: Unknown type name 'NSEvent'; did you mean 'UIEvent'?

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h:6:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:25:9: In file included from /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/CorePlot-CocoaTouch.h:25:

    /Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/Vendor/CorePlot/framework/MacOnly/CPTGraphHostingView.h:1:9: 'Cocoa/Cocoa.h' file not found

    Failed to emit precompiled header '/Users/iosdeveloper/Library/Developer/Xcode/DerivedData/myapp-dacescmywydakagivooskyyjdrxb/Build/Intermediates.noindex/PrecompiledHeaders/BridgingHeader-swift_23625EL1TPX55-clang_31JBRG5UTLUD1.pch' for bridging header '/Users/iosdeveloper/Documents/Xcode_workspace/myapp-ios-main/myapp/BridgingHeader.h'

    --

    It looks like the iOS build is trying to compile Mac-specific code which leads to the build errors I'm getting. Any insight into what might be going on and how to resolve this issue?

    Bug Won't Fix Priority-Medium 
    opened by remypanicker 16
  • shouldHandlePointingDeviceDraggedEvent drags the entire View in iOS8

    shouldHandlePointingDeviceDraggedEvent drags the entire View in iOS8

    Hi have a CorePlot where I drag some points within the graph, after debugging the app in iOS8 when I drag the point in the graph the entire view in the navigationController is dragged and the feature of dragging is not working:

    Here is the code:

    - (BOOL)plotSpace:(CPTPlotSpace *)space shouldHandlePointingDeviceDraggedEvent:(id)event atPoint:(CGPoint)point{
        NSDecimal newPoint[2];
        [plotSpaceVolume plotPoint:newPoint numberOfCoordinates:2 forPlotAreaViewPoint:point];
        NSDecimalRound(&newPoint[0], &newPoint[0], 0, NSRoundPlain);
        int x = [[NSDecimalNumber decimalNumberWithDecimal:newPoint[0]] intValue];
        int max = [[[dataForPlot objectAtIndex:[dataForPlot count]-1] objectForKey:[NSNumber numberWithInt:0]]intValue];
        int min = [[[dataForPlot objectAtIndex:0] objectForKey:[NSNumber numberWithInt:0]]intValue];
    
        if (x < min)
        {
            x = min;
        }
        else if (x > max)
        {
            x = max;
        }
    
        if (touchPlotSelected)
        {
            selectedCoordination = x;
            if ([delegate respondsToSelector:@selector(linePlot:indexLocation:)])
                [delegate linePlot:self indexLocation:x];
            [touchPlotVertical reloadData];
        }
        return YES;
    }
    
    Question 
    opened by Vasco39 16
  • Remove ALWAYS_SEARCH_USER_PATHS=YES from podspec?

    Remove ALWAYS_SEARCH_USER_PATHS=YES from podspec?

    I'm using CorePlot 2.2 in my project. After doing pod install, building in Xcode 8.1 gives me the following warning:

    warning: using 'ALWAYS_SEARCH_USER_PATHS = YES' while building targets which define modules ('DEFINES_MODULE = YES') may fail. Please migrate to using 'ALWAYS_SEARCH_USER_PATHS = NO'.
    

    I tracked the source of this setting to CorePlot, and managed to get rid of the warnings by changing the setting to NO locally by doing pod spec edit CorePlot before rebuilding pod install/Xcode build.

    Would you consider changing this setting? I suspect that commit 114de15e2866f7d1a9aad82f60da628380876880 which reintroduced this setting didn't really need to, and that adding the HEADER_SEARCH_PATHS would be enough in that case, but I haven't really investigated this.

    This isn't a big deal, but having fewer build warnings is always nice.

    Bug Priority-Low 
    opened by toreolsensan 15
  • Text not drawing on OS X 10.11 (El Capitan)

    Text not drawing on OS X 10.11 (El Capitan)

    I just installed the latest Beta for 10.11 and noticed that the text for all the core-plot graphs aren't appearing . Initially I though this may be related to issue #167 , but my app (including dependencies) do not use the stylemask

    NSFullSizeContentViewWindowMask
    

    Any thoughts on what else could be causing this? Has anyone else tested 10.11? I'm currently using coreplot 1.6

    Thanks

    Bug Priority-Medium 
    opened by corysullivan 15
  • many question in  release_1.6  release_2.0?

    many question in release_1.6 release_2.0?

    when i use https://github.com/core-plot/core-plot/releases/tag/release_1.6 build my project has error: duplicate symbol l035 in: libCorePlot-CocoaTouch.a so i drag the file libCorePlot-CocoaTouch.a from https://github.com/core-plot/core-plot/tree/release-2.0 the error is disappeared. but there is new error: 1 y.orthogonalCoordinateDecimal = CPTDecimalFromUnsignedInteger(0); : Property 'orthogonalCoordinateDecimal' not found on object of type 'CPTXYAxis *' 2 +(id)plotRangeWithLocation:(NSDecimal)loc length:(NSDecimal)len; send nsdecimal to nsnumber I replace the method with

    +(instancetype)plotRangeWithLocation:(NSNumber *)loc length:(NSNumber *)len; +(instancetype)plotRangeWithLocationDecimal:(NSDecimal)loc lengthDecimal:(NSDecimal)

    then run the app in ipone 5s ios7.1 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[CPTPlotRange plotRangeWithLocationDecimal:lengthDecimal:]: unrecognized selector sent to class

    Bug Priority-High 
    opened by kscorpio 15
  • Linker warnings with XCode 5.1 beta

    Linker warnings with XCode 5.1 beta

    I'm getting these warnings with the latest beta (don't remember if they were there before):

    warning: /Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: -dynamic not specified, -all_load invalid /Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: -dynamic not specified the following flags are invalid: -ObjC /Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: ../Build/Intermediates/CorePlot-CocoaTouch.build/Debug-iphonesimulator/CorePlot-CocoaTouch.build/Objects-normal/i386/CPTDefinitions.o has no symbols /Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: ../Build/Intermediates/CorePlot-CocoaTouch.build/Debug-iphonesimulator/CorePlot-CocoaTouch.build/Objects-normal/i386/CPTPlatformSpecificDefines.o has no symbols

    Bug Priority-Medium 
    opened by koenvanderdrift 15
  • CorePlot-CocoaTouch.h not found when installed with CocoaPods 0.38.0.beta.1

    CorePlot-CocoaTouch.h not found when installed with CocoaPods 0.38.0.beta.1

    If you install CorePlot with CocoaPods 0.38.0.beta.1 you can't compile your project because the header files are not copied into Pods/Headers/Public/CorePlot/ios

    It works fine with previous versions of CocoaPods

    opened by slizeray 13
  • Support for Swift Package Manager

    Support for Swift Package Manager

    Is there a plan to support the Swift Package Manager in addition to CocoaPods ?

    As of Swift 3, the language ships with SPM. For core-plot to support this mechanism, it would require:

    • [ ] Creating a Package.swift file to describe the module name, dependencies, exclusion etc...
    • [ ] Creating one or more module.modulemap files to map .h files to swift modules

    This seems easy enough but the tricky part is with the multi-platform (OSX, iOS, tvOS) support with different includes, and possibly with file hierarchy.

    Enhancement Priority-Low 
    opened by stefanhp 12
  • Error while compiling 2.4 on MacMini M1 running 13.0.1 and Xcode 14.1

    Error while compiling 2.4 on MacMini M1 running 13.0.1 and Xcode 14.1

    I get the following error while compiling release 2.4 (latest from git) Universal XCFramework.

    Prepare build
    note: Building targets in dependency order
    error: error: accessing build database "/Users/lab/Development/core-plot/build/XCBuildData/build.db": disk I/O error
    
    

    It does appear to generate a framework in core-plot/build/Release/CorePlot.framework

    Bug Priority-Low 
    opened by Louis-Demers 2
  • Xcode 14.1 with branch 2.4 Target missing

    Xcode 14.1 with branch 2.4 Target missing

    I think the most importent target is gone. When I use an older coreplot version there is one more. However it does not compile because it generates no libCorePlot-CocoaTouch.a so in the following linker error comes up as expected:

    Undefined symbols for architecture arm64: "OBJC_CLASS$_CPTColor", referenced from: objc-class-ref in ViewController.o "OBJC_CLASS$_CPTPlotRange", referenced from: objc-class-ref in ViewController.o "OBJC_CLASS$_CPTScatterPlot", referenced from: objc-class-ref in ViewController.o "OBJC_CLASS$_CPTTheme", referenced from: objc-class-ref in ViewController.o "OBJC_CLASS$_CPTXYGraph", referenced from: objc-class-ref in ViewController.o

    Or has something fundamental changed which I do not know?

    2.4 Bildschirm­foto 2022-11-18 um 03 26 49

    older, from 2020

    Bildschirm­foto 2022-11-18 um 03 34 41
    opened by kkro 0
  • Influence Carthage Xcode project lookup

    Influence Carthage Xcode project lookup

    Carthage just uses any Xcode project or workspace file it can find to build frameworks. This is an attempt to tell Carthage where to start.

    Workspaces have higher precedence than projects, so I added a new Workspace with a reference to the framework project instead of merely a symlink.

    Was an attempt to influence #468 but doesn't actually help (other projects are still traversed by Carthage and then fail). With the DatePlot project deleted to prevent the exception, Carthage would start to build the framework from the CorePlotExamples workspace, which sounds a bit odd, so this PR merely affects that lookup. -- Feel free to discard/close without merging this if that doesn't add enough value.

    opened by DivineDominion 0
  • DatePlot project doesn't build because it's using the Swift package

    DatePlot project doesn't build because it's using the Swift package

    I noticed that Carthage fails in Xcode 13.4.1 and 14.0:

    Packages are not supported when using legacy build locations, but the current project has them enabled.

    The examples/DatePlot/DatePlot.xcodeproj is being used by Carthage -- which is probably also not correct, but that's another issue.

    The DatePlot.xcodeproj also provides the same error in Xcode directly.

    All the other example projects work fine since they don't use the Swift package output.

    Full error message

    $ carthage build --no-skip-current
    *** xcodebuild output can be found in /var/folders/62/8k21681d08z9lhq8h433z3rh0000gp/T/carthage-xcodebuild.orx6Mt.log
    A shell task (/usr/bin/xcrun xcodebuild -project /Users/ctm/Downloads/core-plot/examples/DatePlot/DatePlot.xcodeproj CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES -list) failed with exit code 74:
    2022-10-14 08:51:29.997 xcodebuild[4301:1524260] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
    2022-10-14 08:51:29.997 xcodebuild[4301:1524260] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
    xcodebuild: error: Could not resolve package dependencies:
      Packages are not supported when using legacy build locations, but the current project has them enabled.
    
    opened by DivineDominion 1
  • Class missing issue

    Class missing issue

    -(nullable id)debugQuickLookObject { const CGFloat screenScale = 1.0;

    CGSize layerSize = [self layerSizeForScale:screenScale];
    
    CGRect rect = CGRectMake(0.0, 0.0, layerSize.width, layerSize.height);
    
    **return CPTQuickLookImage(rect, ^(CGContextRef context, CGFloat scale, CGRect bounds)**
    {
        CGPoint symbolAnchor = self.anchorPoint;
    
        self.anchorPoint = CPTPointMake(0.5, 0.5);
    
        [self renderAsVectorInContext:context atPoint:CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds)) scale:scale];
    
        self.anchorPoint = symbolAnchor;
    });
    

    }

    error messages:

    Implicit declaration of function 'CPTQuickLookImage' is invalid in C99 Incompatible integer to pointer conversion returning 'int' from a function with result type 'id _Nullable'

    Please explain about the CPTQuickLookImage class not available in side the framework/source/ path

    opened by arunmahask 2
  • Data-driven multi-colored lines for ScatterPlot

    Data-driven multi-colored lines for ScatterPlot

    I'm interested in being able to color line segments based on the values within a third array. That is to say, if X and Y are the graph positions that represent a line, then the color of the line along the path is represented by some array Z along that path.

    In its simplest form, I want to achieve what's in the screenshot below. The X/Y values are components of a wind speed vector (X being the U or zonal component, and Y being the V or meridional component) and the lines are colored based on the altitude of those wind measurements. Wind speeds below 3 km altitude are colored red, 3-6km colored green, 6-9km colored cyan, and so on. However - I also envision the ability to color each segment of an array (rather than all just one color) based on the Z array. This would be analogous to the gradient or fill options, but not being dependent on the XY representation of a gradient.

    Screen Shot 2021-11-02 at 9 52 03 AM

    Right now, the only way I can to do this in CorePlot is to have individual arrays for 0-3km, 3-6km, 6-9km, etc and creating new instances of CPTScatterPlot for each line segment, and then changing the line style for each instance of ScatterPlot. I'm worried about this approach's possible performance hit by having to create multiple CPTScatterPlots to achieve this functionality, especially as more segments require more instances of the object. I think it would be ideal to be able to style a path without having to create new CPTScatterPlot instances.

    I see that the line positions appear to be handled by CPTScatterPlot::newDataLinePathForViewPoints, and that line color is set by CPTLineStyle::setLineStyleInContext. From doing some research into drawing with CoreGraphics, it looks like the stroke would have to be updated along each segment of the line as it is being added. Creating an array that holds the colors of each line segment would be trivial, the question becomes how does one integrate this into the current drawing system well? If you have any pointers for how integrating this functionality might be possible, I would be happy to work on it myself.

    opened by keltonhalbert 1
Releases(release_2.3)
Owner
Core Plot
Cocoa plotting framework for macOS, iOS, tvOS, and Mac Catalyst
Core Plot
🎈 Curated collection of advanced animations that I have developed using (Swift UI for iOS) and (React Native for iOS/Android). Source code is intended to be reused by myself for future projects.

?? Curated collection of advanced animations that I have developed using (Swift UI for iOS) and (React Native for iOS/Android). Source code is intended to be reused by myself for future projects.

Artem Moshnin 5 Apr 3, 2022
Core Charts | Basic Scrollable Chart Library for iOS

Core Charts | Basic Chart Library for iOS HCoreBarChart VCoreBarChart Requirements Installation Usage Appearance Customization Getting Started You nee

Çağrı ÇOLAK 71 Nov 17, 2022
Repository with example app for using Bar chart

Gráfico de Barras (Exemplo) Repositório com app exemplo para o uso do gráfico de Barras. O gráfico de barras é um gráfico com barras retangulares e co

Felipe Leite 0 Nov 5, 2021
an iOS open source Radar Chart implementation

JYRadarChart an open source iOS Radar Chart implementation ##Screenshots Requirements Xcode 5 or higher iOS 5.0 or higher ARC CoreGraphics.framework D

Johnny Wu 416 Dec 31, 2022
An iOS wrapper for ChartJS. Easily build animated charts by leveraging the power of native Obj-C code.

TWRCharts TWRCharts An Obj-C wrapper for ChartJS. Easily build animated charts by leveraging the power of native code. TWRCharts is yet another charti

Michelangelo Chasseur 363 Nov 28, 2022
Wrapper for the Prettier code formatter written in Swift

Prettier A wrapper for the Prettier code formatter written in Swift. The package

Simon Støvring 36 Dec 18, 2022
A simple and beautiful chart lib used in Piner and CoinsMan for iOS(https://github.com/kevinzhow/PNChart) Swift Implementation

PNChart-Swift PNChart(https://github.com/kevinzhow/PNChart) Swift Implementation Installation This isn't on CocoaPods yet, so to install, add this to

Kevin 1.4k Nov 7, 2022
A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

⚡ A powerful & easy to use chart library for Android ⚡ Charts is the iOS version of this library Table of Contents Quick Start Gradle Maven Documentat

Philipp Jahoda 36k Jan 5, 2023
A simple and beautiful chart lib used in Piner and CoinsMan for iOS

PNChart You can also find swift version at here https://github.com/kevinzhow/PNChart-Swift A simple and beautiful chart lib with animation used in Pin

Kevin 9.8k Jan 6, 2023
Simple and intuitive iOS chart library. Contribution graph, clock chart, and bar chart.

TEAChart Simple and intuitive iOS chart library, for Pomotodo app. Contribution graph, clock chart, and bar chart. Supports Storyboard and is fully ac

柳东原 · Dongyuan Liu 1.2k Nov 29, 2022
SwiftChart - A simple line and area charting library for iOS.

SwiftChart A simple line and area charting library for iOS. ?? Line and area charts ?? Multiple series ?? Partially filled series ?? Works with signed

Giampaolo Bellavite 1k Jan 2, 2023
SwiftCharts - Easy to use and highly customizable charts library for iOS

SwiftCharts Easy to use and highly customizable charts library for iOS Features: Bars - plain, stacked, grouped, horizontal, vertical Scatter Lines (s

Ivan Schütz 2.4k Jan 4, 2023
Mac app for virtualizing Linux and macOS (supports M1/Apple Silicon)

Microverse is a thin virtualization app for macOS, which allows running Linux (and, soon, macOS) guest virtual machines, achieved with macOS' own virtualization framework.

Justin Spahr-Summers 121 Dec 21, 2022
SwiftUICharts - A simple line and bar charting library that supports accessibility written using SwiftUI.

SwiftUICharts - A simple line and bar charting library that supports accessibility written using SwiftUI.

Majid Jabrayilov 1.4k Jan 9, 2023
iOS-based charting library for both line and bar graphs.

JBChartView Introducing JBChartView - Jawbone's iOS-based charting library for both line and bar graphs. It is easy to set-up, and highly customizable

Jawbone 3.8k Jan 1, 2023
A simple and animated Pie Chart for your iOS app.

XYPieChart XYPieChart is an simple and easy-to-use pie chart for iOS app. It started from a Potion Project which needs an animated pie graph without i

XY Feng 1.7k Sep 6, 2022
iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.

#EChart A highly extendable, easy to use chart with event handling, animation supported. ##Test How To Use Download and run the EChartDemo project is

Scott Zhu 646 Dec 27, 2022
Dr-Charts Easy to use, customizable and interactive charts library for iOS in Objective-C

dr-charts Easy to use, customizable and interactive charts library for iOS in Objective-C Features: Multiple chart types Line / Multiple lines / Lines

Zomato 93 Oct 10, 2022
A charting library to visualize and interact with a vector map on iOS. It's like Geochart but for iOS!

FSInteractiveMap A charting library to visualize data on a map. It's like geochart but for iOS! The idea behind this library is to load a SVG file of

Arthur 544 Dec 30, 2022