有什么方法可以在 Bokeh 中创建图例标题?
Any way to create a legend title in Bokeh?
有什么方法可以给图例添加标题,例如左侧为当前图例,右侧为带标题的图例。这个特殊的图例被放置在情节之外,所以我不知道我是否可以用文本字形来伪造它。
我发现仍然在 Bokeh 库中,他们没有实现一种方法来
为图例添加标题,但我实施的解决方案如下:
在添加任何其他图表之前添加一个非常小的白点。
Example_Code:
import numpy as np
from bokeh.plotting import output_file, figure, show
x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
legend_title = "Math Functions" #Legend Title
output_file("legend_labels.html")
p = figure()
p.circle(0, 0, size=0.00000001, color= "#ffffff", legend=legend_title)
p.circle(x, y, legend="sin(x)")
p.line(x, y, legend="sin(x)")
p.line(x, 2*y, legend="2*sin(x)",
line_dash=[4, 4], line_color="orange", line_width=2)
p.square(x, 3*y, legend="3*sin(x)", fill_color=None, line_color="green")
p.line(x, 3*y, legend="3*sin(x)", line_color="green")
p.legend.label_text_font = "times"
p.legend.label_text_font_style = "italic"
p.legend.label_text_color = "navy"
show(p)
从最新版本的 Bokeh (1.2) 开始,您可以按如下方式为图例添加标题:
import numpy as np
from bokeh.layouts import gridplot
from bokeh.plotting import figure, show, output_file
x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select"
p1 = figure(title="Legend Example", tools=TOOLS)
p1.circle(x, y, legend="sin(x)")
p1.circle(x, 2*y, legend="2*sin(x)", color="orange")
p1.circle(x, 3*y, legend="3*sin(x)", color="green")
p1.legend.title = 'Example Title'
p2 = figure(title="Another Legend Example", tools=TOOLS)
p2.circle(x, y, legend="sin(x)")
p2.line(x, y, legend="sin(x)")
p2.line(x, 2*y, legend="2*sin(x)", line_dash=(4, 4), line_color="orange", line_width=2)
p2.square(x, 3*y, legend="3*sin(x)", fill_color=None, line_color="green")
p2.line(x, 3*y, legend="3*sin(x)", line_color="green")
output_file("legend.html", title="legend.py example")
show(gridplot([p1, p2], ncols=2, plot_width=400, plot_height=400))
此代码取自 official docs
有什么方法可以给图例添加标题,例如左侧为当前图例,右侧为带标题的图例。这个特殊的图例被放置在情节之外,所以我不知道我是否可以用文本字形来伪造它。
我发现仍然在 Bokeh 库中,他们没有实现一种方法来 为图例添加标题,但我实施的解决方案如下: 在添加任何其他图表之前添加一个非常小的白点。
Example_Code:
import numpy as np
from bokeh.plotting import output_file, figure, show
x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
legend_title = "Math Functions" #Legend Title
output_file("legend_labels.html")
p = figure()
p.circle(0, 0, size=0.00000001, color= "#ffffff", legend=legend_title)
p.circle(x, y, legend="sin(x)")
p.line(x, y, legend="sin(x)")
p.line(x, 2*y, legend="2*sin(x)",
line_dash=[4, 4], line_color="orange", line_width=2)
p.square(x, 3*y, legend="3*sin(x)", fill_color=None, line_color="green")
p.line(x, 3*y, legend="3*sin(x)", line_color="green")
p.legend.label_text_font = "times"
p.legend.label_text_font_style = "italic"
p.legend.label_text_color = "navy"
show(p)
从最新版本的 Bokeh (1.2) 开始,您可以按如下方式为图例添加标题:
import numpy as np
from bokeh.layouts import gridplot
from bokeh.plotting import figure, show, output_file
x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select"
p1 = figure(title="Legend Example", tools=TOOLS)
p1.circle(x, y, legend="sin(x)")
p1.circle(x, 2*y, legend="2*sin(x)", color="orange")
p1.circle(x, 3*y, legend="3*sin(x)", color="green")
p1.legend.title = 'Example Title'
p2 = figure(title="Another Legend Example", tools=TOOLS)
p2.circle(x, y, legend="sin(x)")
p2.line(x, y, legend="sin(x)")
p2.line(x, 2*y, legend="2*sin(x)", line_dash=(4, 4), line_color="orange", line_width=2)
p2.square(x, 3*y, legend="3*sin(x)", fill_color=None, line_color="green")
p2.line(x, 3*y, legend="3*sin(x)", line_color="green")
output_file("legend.html", title="legend.py example")
show(gridplot([p1, p2], ncols=2, plot_width=400, plot_height=400))
此代码取自 official docs