问题是关于'%{variable}'下面引用的代码中的语法,特别是函数中的和hovertemplate, textkwargscustomdatago.Bar()
fig = go.Figure(
data=[
go.Bar(
name=coln, x=df.index, y=df[coln],
# coln means columnName
hovertemplate = '%{x}' + '%{y}' # <============= this thing here
+ '%{text}' + '%{customdata} + %{coln}',
# can access x,y,text,customdata. ie. all kwargs of this trace ("trace" is a plotly technical term, meaning, this bar plot)
# can NOT access any other my own variables like df or coln
customdata = [coln]*len(df.index),
text = [
'<b>colname==</b>:'+ another_df.loc[coln] + somefunction(coln)
# can only do things around df and coln, not x nor y <============= and this thing here
]*len(df.index),
) for coln in df.columns
],
)
我无法规避的限制:
在hovertemplate
kwarg 中,我只能访问x, y, text and customdata
,%{coln}
无法工作
在text
and customdata
kwarg 中,我可以访问coln
and df
,但是,%{x}
不起作用,x
因为变量不起作用。另外,text
这 customdata
是我可以访问的唯一地方coln
,没有其他“自定义数据持有者”
text
另外,由于我们在这里,构建customdata
一个与绘图 x 轴长度相同的列表非常麻烦,即*len(df.index)
我正在寻找的是:
类似 python f 字符串的f"{x} {y} {coln}"
语法,可以自由访问x, y, coln
,以及在跟踪中自由使用x y
, like:df.at[x, y]
或。myfoo(x, y)
PS
虽然问题要求的是特定的东西,但主要目标是寻求一种更灵活的方式来构建悬停文本。由于我是plotly和javascript的新手,我可能会错过很多大图片,所以我可能会以错误的方式处理这种情况,如果是这种情况,请也指出这一点。
墨色风雨
相关分类