Giter VIP home page Giter VIP logo

orca's Introduction

Orca

npm version MIT License

Orca is an Electron app that generates images and reports of Plotly things like plotly.js graphs, dash apps, dashboards from the command line. Additionally, Orca is the backbone of Plotly's Image Server. Orca is also an acronym for Open-source Report Creator App.

Visit plot.ly to learn more or visit the Plotly forum.

Follow @plotlygraphs on Twitter for Orca announcements.

Installation

If you have Node.js installed (recommended v8.x), you can easily install Orca using npm as:

$ npm install -g [email protected] orca

which makes the orca executable available in your path.

Alternatively, you can download the standalone Orca binaries corresponding to your operating system from the release page. Then, on

Mac OS

  • Unzip mac-release.zip from your Downloads/ folder
  • Double-click on orca-X.Y.Z.dmg file, that should open an installation window
  • Drag the orca icon into Applications
  • In finder, go to the Applications/ folder
  • Right-click on the orca icon and click on Open, this should open an Installation Succeeded window
  • Open the terminal and start using Orca!

Windows

  • Extract the window-release.zip file
  • In the release folder, double-click on orca Setup X.Y.Z, this will create an orca icon on your Desktop
  • Right-click on the orca icon, then click on Properties and copy the Starts in field
  • In the command prompt, run PATH %PATH%;<paste the "Starts in" field here>

Linux

  • Run $ chmod +x orca-X.Y.Z-x86_64.AppImage
  • Add it to your $PATH

Quick start

From the command line:

$ orca graph '{ "data": [{"y": [1,2,1]}] }' -o fig.png

generates a PNG from the inputted plotly.js JSON attributes. Or,

$ orca graph https://plot.ly/~empet/14324.json --format svg

generates an SVG from a plotly.js JSON hosted on plot.ly.

To print info about the supported arguments, run:

$ orca --help
$ orca <command> --help

To call orca from a Python script:

from subprocess import call
import json
import plotly

fig = {"data": [{"y": [1,2,1]}]}
call(['orca', 'graph', json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)])

To call orca from an R script:

library(plotly)

p <- plot_ly(x = 1:10, y = 1:10, color = 1:10)
b <- plotly_build(p)$x[c("data", "layout")]
json <- plotly:::to_JSON(b)

cmd <- sprintf("orca graph '%s' -o r-export-test.png", json)
system(cmd)

API usage

Using the orca npm module allows developers to build their own Plotly exporting tool. We export two Electron app creator methods run and serve. Both methods return an Electron app object (which is an event listener/emitter).

To create a runner app:

// main.js

const orca = require('orca/src')

const app = orca.run({
  component: 'plotly-graph',
  input: 'path-to-file' || 'glob*' || url || '{data: [], layout: {}}' || [/* array of those */],
  debug: true
})

app.on('after-export', (info) => {
  fs.writeFile('output.png', info.body, (err) => console.warn(err))
})

// other available events:
app.on('after-export-all', () => {})
app.on('export-error', () => {})
app.on('renderer-error', () => {})

then launch it with electron main.js

Or, to create a server app:

// main.js

const orca = require('orca/src')

const app = orca.serve({
  port: 9090,
  component: 'component name ' || [{
    name: 'plotly-graph',
    path: /* path to module if none given, tries to resolve ${name} */,
    route: /* default to same as ${name} */,

    // other options passed to component methods
    options: {
      plotlyJS: '',
      mathjax: '',
      topojson: '',
      mapboxAccessToken: ''
    }
  }, {
    // other component
  }, {
    // other component ...
  }],

  debug: false || true
})

app.on('after-export', (info) => {
  console.log(info)
})

// other available events:
app.on('after-connect', () => {})
app.on('export-error', () => {})
app.on('renderer-error', () => {})

then launch it with electron main.js

Plotly's image server

Plotly's image server is dockerized and deployed here. See the deployment/ README for more info.

System dependencies

If you don't care about exporting EPS you can skip this section.

The environment you're installing this into may require Poppler for EPS exports.

Poppler installation via Aptitude (used by some *nix/BSD, e.g. Ubuntu)

$ apt-get poppler-utils (requires `sudo` or root privileges)

Poppler installation via Homebrew (third-party package manager for Mac OS X)

$ brew install poppler

Contributing

See CONTRIBUTING.md. You can also contact us if you would like a specific feature added.

Tests and Linux builds Mac OS build Windows build
CircleCI Build Status AppVeyor

License

Code released under the MIT © License.

orca's People

Contributors

chriddyp avatar etpinard avatar jackparmer avatar jamescropcho avatar monfera avatar n-riesco avatar scjody avatar tarzzz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.