Core Plot (iOS and tvOS)
Cocoa plotting framework for macOS, iOS, and tvOS
Core Plot

Introduction

Core Plot is a 2D Cocoa 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 https://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

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