Python 如何实现holoviews绘图的多行标题?

Python 如何实现holoviews绘图的多行标题?,python,bokeh,holoviews,Python,Bokeh,Holoviews,我想不止一行作为一个选项的标题holoviews绘图对象。只允许使用字符串,对于打印语句有效的内容似乎不适用于标题 import numpy as np import holoviews as hv hv.extension('bokeh') from holoviews import opts plot_title = 'Line 1 \nLine 2' plot_title # printing results in two lines, the \n is recognized prin

我想不止一行作为一个选项的标题holoviews绘图对象。只允许使用字符串,对于打印语句有效的内容似乎不适用于标题

import numpy as np
import holoviews as hv
hv.extension('bokeh')
from holoviews import opts

plot_title = 'Line 1 \nLine 2'
plot_title
# printing results in two lines, the \n is recognized
print(plot_title)

# the \n is ignored when the string is used for a title
points = [(0.1*i, np.sin(0.1*i)) for i in range(100)]
hv.Curve(points).opts(title=plot_title)

HoloViews
在您的示例中使用
bokeh
作为绘图后端,
bokeh
尚不支持此功能,即多行标题。请注意,您的问题与此类似:现在(2020年4月27日)有一个关于博克的相关未决问题

我看到了两种为您的绘图获取多行标题的方法

第一个问题改编自另一个SO问题,并直接使用bokeh添加标题作为版面:

将numpy导入为np
将全息视图导入为hv
输入bokeh.io
来自bokeh.models导入标题
高压扩展(“bokeh”)
点=[(0.1*i,np.sin(0.1*i))表示范围(100)内的i]
高压曲线=高压曲线(点)
bk_曲线=hv.渲染(hv_曲线)
bk_曲线。添加_布局(标题(text=“Sub Title”,text\u font\u style=“italic”),“上方”)
bk_曲线。添加_布局(标题(text=“Title”,text\u font\u size=“16pt”,text\u font\u style=“bold”),“上方”)
bokeh.io.show(bk_曲线)

第二个利用(HoloViews的依赖项)将标题显示为两个标记窗格(也可以是一个HTML窗格),两个窗格都位于曲线上方的
布局的中心:

将numpy导入为np
将全息视图导入为hv
高压扩展(“bokeh”)
作为pn导入面板
请注意:扩展部分()
点=[(0.1*i,np.sin(0.1*i))表示范围(100)内的i]
高压曲线=高压曲线(点)
面板布置图pn.柱(
请注意,窗格标记(“**标题**”,align=“中心”),#粗体
请注意,窗格标记(“*子标题*”,align=“居中”),#斜体
hv_曲线
)
面板布局

如果运行
panel\u 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运行,谢谢!博克不做多行的这一点是我的怀疑。我想我只是错过了一些语法问题。我注意到,第一个示例并没有确切地指定文本应该放在哪里-一个出现在另一个上面是因为'over'参数?是的,您可以在bokeh文档中看到,
add\u layout
方法允许声明要添加
标题的位置。在本例中,我首先将字幕添加到绘图上方,然后将标题添加到字幕上方。在第一个示例中,为了使其正常工作,需要从bokeh.models导入标题。