gpt4 book ai didi

python - 如何为全息图实现多行标题?

转载 作者:行者123 更新时间:2023-12-04 13:14:57 25 4
gpt4 key购买 nike

我想要不止一行作为全息图对象标题的选项。只允许使用字符串,似乎对打印语句有效的方法对标题无效。

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)

simple plot

最佳答案

HoloViews用途 bokeh作为示例中的绘图后端,bokeh 尚不支持此功能,即多行标题。 .请注意,您的问题与此类似:How to create a multi-line plot title in bokeh?并且现在 (27/04/2020) 有一个关于 Bokeh 的相关未决问题 https://github.com/bokeh/bokeh/issues/7317 .

我看到了两种为您的情节获取多行标题的方法。

第一个改编自另一个 SO 问题,并直接使用 Bokeh 将标题添加为布局:

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)

bokeh solution

第二个使用 panel (现在是 HoloViews 的依赖项)将标题显示为两个 Markdown Pane (也可以是一个 HTML Pane ),它们都以 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 solution

如果您运行 panel_layout.pprint()您将能够检查该布局的结构。
Column
[0] Markdown(str, align='center')
[1] Markdown(str, align='center')
[2] HoloViews(Curve)

注意:使用 Holoviews 1.13.2 运行, bokeh 2.0.1panel 0.9.5 .

关于python - 如何为全息图实现多行标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61417484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com