HoloViews
использует bokeh
в качестве бэкенда в вашем примере, и эта функция, то есть многострочный заголовок, пока не поддерживается bokeh
. Обратите внимание, что ваш вопрос похож на этот: Как создать заголовок многострочного сюжета в bokeh? и что теперь (27/04/2020) есть связанная открытая проблема по bokeh https://github.com/bokeh/bokeh/issues/7317.
Я вижу два способа получения многострочного заголовка для вашего сюжета.
Первый адаптирован из другого вопроса SO и использует боке непосредственно для добавления заголовков в виде макет:
import numpy as np
import holoviews as hv
import bokeh.io
from bokeh.models import Title
hv.extension('bokeh')
points = [(0.1*i, np.sin(0.1*i)) for i in range(100)]
hv_curve = hv.Curve(points)
bk_curve = hv.render(hv_curve)
bk_curve.add_layout(Title(text="Sub-Title", text_font_style="italic"), 'above')
bk_curve.add_layout(Title(text="Title", text_font_size="16pt", text_font_style="bold"), 'above')
bokeh.io.show(bk_curve)
Второй использует panel
(зависимость HoloViews
сейчас ) для отображения заголовков в виде двух панелей Markdown (это также может быть одна панель HTML), центрированных в макете Column
над кривой:
import numpy as np
import holoviews as hv
hv.extension('bokeh')
import panel as pn
pn.extension()
points = [(0.1*i, np.sin(0.1*i)) for i in range(100)]
hv_curve = hv.Curve(points)
panel_layout pn.Column(
pn.pane.Markdown("**Title**", align="center"), # bold
pn.pane.Markdown("*Sub-title*", align="center"), # italic
hv_curve
)
panel_layout
Если вы запустите panel_layout.pprint()
, вы сможете проверить структуру этого макета.
Column
[0] Markdown(str, align='center')
[1] Markdown(str, align='center')
[2] HoloViews(Curve)
Примечание: Запустите с Holoviews 1.13.2
, bokeh 2.0.1
и panel 0.9.5
.