Popularity
1.7
Stable
Activity
0.0
Stable
60
4
8

Code Quality Rank: L4
Programming language: Swift
Tags: Math

# PlotKit alternatives and similar libraries

Based on the "Math" category.
Alternatively, view PlotKit alternatives based on common mentions on social networks and blogs.

• ### DDMathParser

String → Number
• ### BigInt

Arbitrary-precision arithmetic in pure Swift
• ### Appwrite - The Open Source Firebase alternative introduces iOS support

Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
Promo
• ### SigmaSwiftStatistics

A collection of functions for statistical calculation written in Swift.
• ### swix

A general matrix language.
• ### Easy-Cal-Swift

Overload +-*/ operator for Swift, make it easier to use (and not so strict)
• ### Upsurge

Multi-dimensional Swift math
• ### Matft

Numpy-like library in swift. (Multi-dimensional Array, ndarray, matrix and vector library)
• ### Arithmosophi

A set of protocols for Arithmetic, Statistics and Logical operations

Do you think we are missing an alternative of PlotKit or a related project?

## PlotKit

[PlotKit Plot](example.png?raw=true "PlotKit Plot")

## Features

• [x] 2D line and scatter plots
• [x] Multiple axes
• [x] Custom tick marks

## Usage

To start using PlotKit quickly use the `plotPoints` helper function. It takes a list of points and returns a view that you can use in your app:

``````import PlotKit

// Generate some data to plot
let count = 1024
let t = (0..<count).map({ 2*M_PI * Double(\$0) / Double(count-1) })
let y = t.map({ sin(\$0) })

// Create a PlotView
let plotView1 = plotPoints((0..<count).map{ Point(x: t[\$0], y: y[\$0]) }, hTicks: .fit(6), vTicks: .fit(4))
``````

### Multiple point sets

You can have multiple curves or scatter plots in the same `PlotView`.

``````let plotView = PlotView()

let pointSet1 = PointSet(values: values1)
pointSet2.pointColor = .red
pointSet1.lineColor = nil

let pointSet2 = PointSet(values: values2)
pointSet2.pointType = .none
pointSet2.lineColor = .blue
``````

### Axes

You can customize your plot axes. You can have as many axis lines as you want on the same plot.

``````let plotView = PlotView()

var xaxis = Axis(orientation: .horizontal, ticks: .fit(5))
xaxis.position = .value(0)
xaxis.color = .blue
xaxis.labelAttributes = [NSForegroundColorAttributeName: NSColor.blue]

var yaxis = Axis(orientation: .vertical, ticks: .distance(1))
yaxis.lineWidth = 2
``````

You can specify ticks in one of three ways:

• `fit(n)`: Say how many tick marks you want. PlotKit will space them evenly.
• `distance(d)`: Say how far appart to place tick marks.
• `list(l)`: Specify exactly the tick marks you want. This is the most flexible. You get to decide where to put the tick marks and also what their labels, line length and line thickness are.

## Using PlotKit with Storyboards

If you want to use a PlotView in a Storyboard add an `NSView` and then change the class name and module like so 