# Show Bokeh and Pyvis plots

DataLab supports most visualisation libraries available for Python and R like [matplotlib](https://matplotlib.org/stable/index.html) and [plotly](https://plotly.com/python/). Some visualisation libraries require special attention to correctly generate output in DataLab.

### Python

#### Bokeh ([docs](https://docs.bokeh.org/en/latest/))

DataLab does not natively support outputs from Bokeh. The guide outlined in the [Bokeh docs](https://docs.bokeh.org/en/latest/docs/user_guide/output/jupyter.html#classic-notebooks) for Jupyter notebooks is not supported. In DataLab it is required to generate a HTML output. You can use the following helper function to display a Bokeh graph:

```python
from IPython.display import HTML
from bokeh.embed import file_html
from bokeh.resources import CDN

def display_bokeh(bokeh_figure):
    return HTML(file_html(bokeh_figure, CDN))

```

#### Pyvis ([docs](https://pyvis.readthedocs.io/en/latest/index.html))

Pyvis writes outputs to HTML files. The following example contains a helper function `display_pyvis` which takes a pyvis graph and a name as arguments and will return the HTML output of the graph.

```python
# IMPORTS
from IPython.display import HTML
from pyvis import network as net
import networkx as nx

def display_pyvis(pyvis_graph, name):
    filename = f"{name}.html"
    pyvis_graph.save_graph(filename)
    return HTML(filename=filename)    


g = net.Network(notebook=True, cdn_resources='in_line')
nxg = nx.complete_graph(5)
g.from_nx(nxg)

display_pyvis(g, "pyvis-example")
```
