In 20 words or less?
Plotserver is a node.js application for easy plotting of timeseries and other simple XY data.
You will need a working node.js installation and git:
git clone firstname.lastname@example.org:prezi/plotserver.git cd plotserver npm install node plotserver.js config/test.js # open http://localhost:9001 in your browser
Cool samples under
At Prezi, we generate a large amount of log data every day, and derive valuable company and product metrics. We use a variety of tools to plot and share these charts, Plotserver is the most popular of these with our engineers.
What problem does it solve?
Let's say you have some simple CSV (comma seperated values) data, like
2013-01-01, 1 2013-01-02, 4 2013-01-03, 9 2013-01-04, 16 2013-01-05, 25
You just want to quickly visualize it, and then share with some of your co-workers. Plotserver to the rescue!
http://localhost:9001/yourname/dataset, copy and paste your data, and the chart appears!
The dataset (file) is automatically created when you click
Save in the browser.
Optionally set the options to prettify the chart, and send the URL over to your buddies.
You can also send and retrieve data from Plotserver using a command line tool, conveniently called
The command line is in the
# above example from the command line $ cat <<EOF | cli/plotserver set "http://localhost:9001/yourname/dataset" 2013-01-01, 1 2013-01-02, 4 2013-01-03, 9 2013-01-04, 16 2013-01-05, 25 EOF # verify it was written $ cli/plotserver cat "http://localhost:9001/yourname/dataset"
How do we use Plotserver at Prezi?
We mostly use Plotserver for displaying auto-generated timeseries data. One example is our data warehouse, which sends new data points to Plotserver every night, such as how many users registered that day on prezi.com, or how many prezis were created that day.
The node application stores the data in the
public folder in CSV files. At Prezi we have a cronjob which pushes any changes here to a github repository, so we get free versioning of our datasets.
To set server options, see the
production.js examples. You can add custom loggers in
The client has a few settings, these can be found in
The cli tool has a conveniance feature: if you set
$PLOTSERVER_HOST, then you can just specify the path part of your datasets when using it. For example:
# above example from the command line $ export PLOTSERVER_HOST="http://localhost:9001/" $ cat <<EOF | cli/plotserver set "yourname/dataset" 2013-01-01, 1 2013-01-02, 4 2013-01-03, 9 2013-01-04, 16 2013-01-05, 25 EOF # verify it was written $ cli/plotserver cat "yourname/dataset"
Additionally, you can specify
$PLOTSERVER_CURL_OPTIONS, these will be passed to curl as-is.
Send git pull requests to our github repo :)
Todos and ideas:
- refactor client.html
- prettify the client
- replace Google charts with d3.js
- add support for dashboards
- add support for large datasets
- add Mysql backend
Plotserver is released under the MIT License.