所以我理解谁会以编程方式关闭Bokeh
图中的图例,但我想知道是否有办法以交互方式执行此操作?有时我在情节传奇中有很多项目,而传说占用了大量的空间或房地产。我想知道是否有办法点击图例来隐藏它,或者某种选择?
我知道我可以通过代码影响图例的可见性:
myPlot.legend.visible = False
但是我可以按照自己的意愿打开和关闭传奇。
答案 0 :(得分:2)
您可以使用CustomJS
,这是一个在DoubleTap
事件上切换图例的示例:
import numpy as np
from bokeh.io import show, output_notebook
from bokeh.plotting import figure
from bokeh import events
from bokeh.models import CustomJS, ColumnDataSource
t = np.linspace(0, 4*np.pi, 100)
source = ColumnDataSource(data=dict(x=t, y1=np.sin(t), y2=np.cos(t)))
fig = figure(plot_height=250)
fig.line("x", "y1", source=source, legend="sin", line_color="red")
fig.line("x", "y2", source=source, legend="cos", line_color="green")
def show_hide_legend(legend=fig.legend[0]):
legend.visible = not legend.visible
fig.js_on_event(events.DoubleTap, CustomJS.from_py_func(show_hide_legend))
show(fig)
答案 1 :(得分:0)
截至Bokeh mean()
,没有用于隐藏图例的内置UI机制。您当前最好的赌注可能是添加一个“显示/隐藏图例”按钮,用于切换图例上的0.12.13
。
答案 2 :(得分:0)
由于CustomJS.from_py_func
不再起作用,因此应该可以解决问题
toggle_legend_js = CustomJS(args=dict(leg=p.legend[0]), code="""
if (leg.visible) {
leg.visible = false
}
else {
leg.visible = true
}
""")
p.js_on_event(events.DoubleTap, toggle_legend_js)
其中p
是您的figure