【发布时间】:2019-06-18 19:22:45
【问题描述】:
我正在创建一个散点图并希望在工具提示中显示一些信息。
以下工作完美:
import bqplot as bqp
import ipywidgets as ipw
xSc = bqp.LinearScale()
ySc = bqp.LinearScale()
tt = ipw.Label("A")
def hover_handler(self, content):
tt.value = str(content)
s = bqp.Scatter(x=[0, 1, 2], y=[1, 2, 3], scales=dict(x=xSc, y=ySc),
tooltip=tt)
s.on_hover(hover_handler)
bqp.Figure(marks=[s])
(没有坐标轴之类的东西来保持代码简短)
将鼠标悬停在每个点上显示其content 就好了。
但是,我不想简单地显示原始内容。相反,我想以表格形式显示它(但默认的 bqp.Tooltip 不足以满足我的需要)。
但是,如果我将标签包裹在 ipw.VBox 中,则工具提示会变成一个很小的垂直条。添加min_width 和min_height 会增加工具提示的大小,但没有内容(即使tt 是使用默认值创建的)。如果我单独调用以单独显示 VBox,则该版本会正常显示(即使没有定义布局),甚至在将鼠标移到这些点上时也会更新。
import bqplot as bqp
import ipywidgets as ipw
from IPython.display import display
xSc = bqp.LinearScale()
ySc = bqp.LinearScale()
tt = ipw.Label("A")
vb = ipw.VBox(children=[tt], layout=ipw.Layout(min_width='100px', min_height='100px'))
display(vb)
def hover_handler(self, content):
tt.value = str(content)
s = bqp.Scatter(x=[0, 1, 2], y=[1, 2, 3], scales=dict(x=xSc, y=ySc),
tooltip=vb)
s.on_hover(hover_handler)
bqp.Figure(marks=[s])
我需要做什么才能让工具提示正确显示?
【问题讨论】:
标签: python ipywidgets bqplot