Bokeh-Beispiel¶
In Bokeh werden ganze Dateien geladen, deswegen müssen die SVG-Kacheln rechteckig sein.
1. Importe¶
Wir benötigen folgende Importe, um Bokeh in Jupyter Notebooks anzeigen zu können und die SVG-Dateien Base64-kodiert verarbeiten zu können.
[1]:
import base64
from bokeh.io import show, output_notebook
from bokeh.models import ImageURLTexture
from bokeh.plotting import figure
from bokeh.resources import INLINE
output_notebook(resources=INLINE)
2. SVGs definieren¶
[2]:
svg_files = [
"dotspattern.svg",
"caretpattern.svg",
"trianglepattern.svg",
"spiralpattern.svg",
"crosspattern.svg",
"diamondpattern.svg",
"squarepattern.svg",
"tristarpattern.svg"
]
3. Konvertieren der SVG-Dateien¶
Die SVG-Dateien werden nun Base64-kodiert und als Dict zur Verfügung gestellt.
[3]:
def svg_to_base64(svg_path):
"""Umwandeln der SVGs in Base64-URLs"""
with open(svg_path, "rb") as svg_file:
encoded_svg = base64.b64encode(svg_file.read()).decode("utf-8")
return f"data:image/svg+xml;base64,{encoded_svg}"
# Dictionary aus Hatch-Pattern und SVGs erstellen
hatch_patterns = {f"pattern_{i}":
ImageURLTexture(
url=svg_to_base64("../../../_static/pattern/" + svg_files[i])
) for i in range(len(svg_files))}
4. Farbnamen und Beispielwerte für den Plot erstellen¶
[4]:
categories = ["Purple", "Teal", "Orange", "Blue", "Red", "Cyan", "Magenta", "Green"]
values = [90, 80, 50, 55, 50, 60, 40, 80]
5. Säulendiagramm (vbar) erstellen¶
[5]:
p = figure(x_range=categories, height=400,
title="cusy Pattern Example")
p.vbar(x=categories,
top=values,
hatch_extra=hatch_patterns, # Pattern anwenden
hatch_pattern=[f"pattern_{i}" for i in range(len(categories))],
line_color=None)
[5]:
GlyphRenderer(
id = 'p1058', …)
6. svg-Backend auswählen¶
[6]:
p.output_backend="svg"
show(p)