ipylayout

ipylayout basiert auf GoldenLayout, einem Multi-Screen-Layout-Manager für Webanwendungen.

Installation

ipylayout kann einfach mit pipenv installiert werden:

$ pipenv install ipylayout
Installing ipylayout…
…

Sofern noch nicht geschehen, wird auch ipywidgets mitinstalliert.

Beispiel

Für das folgende Beispiel benötigt ihr zusätzlich noch die Python-Pakete ipyleaflet und 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 0x1085db1d0>
[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 kann auch zusammen mit Voilà verwendet werden: ipylayout in Voilà