ipylayout
#
ipylayout
is based on GoldenLayout, a multi-screen layout manager for web applications.
Installation#
ipylayout
can be easily installed with pipenv:
$ pipenv install ipylayout
Installing ipylayout…
…
If not already done, ipywidgets
will also be installed.
Example#
For the following example you also need the Python packages ipyleaflet
and ipympl
.
[1]:
%matplotlib widget
import ipylayout
import ipyleaflet
import ipywidgets
import matplotlib.pyplot as plt
import numpy as np
plt.ioff()
[1]:
<contextlib.ExitStack at 0x110a4df10>
[2]:
# create a plot
fig = plt.figure()
fig.canvas.header_visible = False
fig.canvas.layout.min_height = '300px'
fig.canvas.layout.width = '100%'
plt.title('Plotting: y=sin(x)')
x = np.linspace(0, 20, 500)
lines = plt.plot(x, np.sin(x))
[3]:
# create a slider
slider = ipywidgets.FloatSlider()
[4]:
# create a map
m = ipyleaflet.Map(
center=(52.204793, 360.121558),
zoom=4
)
[5]:
# create a layout
l = ipylayout.Layout(layout=ipywidgets.Layout(width="100%", height="800px"))
l.theme = "light" # light or dark
l.config = {
"content": [
{
"type": "row",
"content": [
{
"type": "component",
"componentName": "name0",
"componentState": {"label": "A"},
},
{
"type": "column",
"content": [
{
"type": "component",
"componentName": "name1",
"componentState": {"label": "B"},
},
{
"type": "component",
"componentName": "name2",
"componentState": {"label": "C"},
},
],
},
],
}
]
}
l.components = {"name0": slider, "name1": m, "name2": fig.canvas}
[6]:
l
ipylayout
can also be used together with Voilà: