Skip to content

facultyai/scala-plotly-client

Repository files navigation

Build Status

Plotly client

## Installation

To add the plotly client to your code, add the following lines to your build.sbt:

libraryDependencies += "co.theasi" %% "plotly" % "0.2.0"

To install the bleeding edge version, add this instead:

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

libraryDependencies += "co.theasi" %% "plotly" % "0.2.1-SNAPSHOT"

Documentation

## Authentication

To create a graph on Plotly, start by opening an account with the web UI. Then create an API key by clicking on your username in the top right hand corner of the screen and selecting SETTINGS > API KEYS. Create the file ~/.plotly/.credentials in your home directory. The file should look like:

{
  "username": "pbugnion",
  "api_key": "l233fgfdsjk"
}

Note that if you have already used another Plotly client, you probably do not need to do this.

## Your first graph

To create a graph on the Plotly servers, start by importing the client:

import co.theasi.plotly._

Then, just pass the x, y series that you want to plot:

scala> val x = Vector(1.0, 2.0, 3.0)

scala> val y = Vector(1.0, 4.0, 9.0)

scala> val p = Plot().withScatter(x, y)

scala> draw(p, "hello-plotly")
PlotFile = PlotFile(pbugnion:264,hello-plotly)

This will create a graph called hello-plotly in your account!

## Using custom credentials

Sometimes, creating a ~/.plotly/.credentials file isn't practical. In that case, you can pass credentials to Plotly programatically by defining a custom server.

import co.theasi.plotly._

implicit val server = new writer.Server {
  val credentials = writer.Credentials("<username>", "<api_key>")
  val url = "https://api.plot.ly/v2/"
}

You can then use Plotly commands normally:

scala> val p = Plot().withScatter(Vector(1, 2, 3), Vector(1, 4, 9))

scala> draw(p, "custom-credentials")
PlotFile = PlotFile(pbugnion:268,custom-credentials)