Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/breuleux/buche-bokeh
Bokeh plugin for Buche.
https://github.com/breuleux/buche-bokeh
Last synced: 9 days ago
JSON representation
Bokeh plugin for Buche.
- Host: GitHub
- URL: https://github.com/breuleux/buche-bokeh
- Owner: breuleux
- Created: 2017-11-20T20:45:20.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-12T17:21:06.000Z (almost 7 years ago)
- Last Synced: 2024-10-18T18:54:11.216Z (28 days ago)
- Language: JavaScript
- Size: 31.3 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# buche-bokeh
Buche plugin for the [bokeh](https://bokeh.pydata.org/en/latest/) plotting library.
Provides the `bokeh` channel type.
## Use
First you must output the following `buche` command:
```json
{"command":"require","path":"/","pluginName":"bokeh"}
```Buche will prompt you to install the plugin if it is not available, although you can install it manually with `buche --install bokeh`.
## `bokeh` channel
The `bokeh` channel lets you define a figure and add plots and points to it in real time.
After you create the main `BokehChannel` for plotting, each plot is a sub-channel that you must open. For example:
```json
{"command":"open","path":"/plot","type":"bokeh"}
{"command":"open","path":"/plot/myplot1","plotType":"line"}
{"command":"open","path":"/plot/myplot2","plotType":"x","legend":"My Plot"}
{"command":"open","path":"/plot/myplot3","plotType":"asterisk","size":10,"x":{"field":"time"},"y":{"field":"candies"}}
...
```Information about the various plot types, and what parameters they can take: https://bokeh.pydata.org/en/latest/docs/reference/plotting.html
Note that for most parameters, if you want their value to depend on some field in the data, you can use: `"": {"field": ""}`. This is done by default for the `x` and `y` parameters of most plot types, mapping them to the field of the same name. This can be overriden, for example in the line to open `/plot/myplot3` above.
Once these channels are created, add points using the `data` command:
```json
{"command":"data","path":"/plot/myplot1","x":1,"y":2}
{"command":"data","path":"/plot/myplot2","x":3,"y":4}
{"command":"data","path":"/plot/myplot3","time":5,"candies":6}
...
```### Coupling with a `table` channel
A plot can specify an existing `TableChannel` as a source:
```json
{"command":"open","path":"/data","type":"table","columns":{"x":{"type":"number"},"y":{"type":"number"}}, "hidden":true}
{"command":"open","path":"/plot","type":"bokeh"}
{"command":"open","path":"/plot/myplot1","plotType":"line","source":"/data"}
{"command":"data","path":"/data","x":1,"y":2}
...
```Data sent to `/data` will be shown as points in `/plot/myplot1`. Multiple plots can use the same source and use arbitrary fields from that table as `x` and `y` coordinates. Set the `hidden` attribute on the data channel if you don't want the data table to actually be displayed.
### Examples
See the `examples/` sub-directory.