禁用跟踪上的悬停信息,情节
Posted
技术标签:
【中文标题】禁用跟踪上的悬停信息,情节【英文标题】:Disable hover information on trace, plotly 【发布时间】:2015-11-25 23:34:25 【问题描述】:我目前正在使用 plotly 服务来绘制一些水质数据。我添加了一些线来表示水质的各个阶段,它们被阴影化,因此它们是绿色、黄色和红色。
我已经能够从图例中删除一些不必要的行,但是当将鼠标悬停在数据上时它们仍然会出现。我看过这里text and annotations 但是当尝试使用“hoverinfo”参数时,我得到了一个
"plotly.exceptions.PlotlyDictKeyError: 无效键,'hoverinfo',对于 类,'Scatter'。”
错误。是否有另一种方法可以为散点图执行此操作?到目前为止,我已经查看并没有发现任何有用的信息。
这是我目前尝试设置跟踪的方式:
badNTULevel = Scatter(
x=[],
y=[100],
mode='lines',
line=Line(
opacity=0.5,
color='rgb(253,172,79)',
width=1,
),
stream=Stream(
token=stream_ids[3],
maxpoints=80
),
hoverinfo='none',
fill='tonexty',
name="Water Treatment Plants Can't Process over 100"
)
任何帮助将不胜感激。
【问题讨论】:
您必须将“validate=False
”添加到您的绘图调用中,并使用dict
而不是Scatter
。这将绕过您看到的验证错误。有关更多信息,请参阅此示例:plot.ly/python/text-and-annotations/#disabling-hover-text
@ChrisP 我刚刚有机会尝试一下。不幸的是,即使验证设置为 false,它仍然会给出相同的错误。请看这个更大的代码 sn-p here 它在第 134 行抛出错误。
好的,也将Figure
更改为dict
(无论如何它只是一个简单的子类)。长话短说,验证过时的特色键,这会导致验证错误,只要使用来自plotly.graph_objs
的子类dict
。
@ChrisP 成功了,谢谢!
只有设法将数据对象从 Scatter(dict) 直接跳过到 Figure(also dict)。
【参考方案1】:
在您的跟踪中添加:hoverinfo='skip'
trace = dict(
x=[1,2,3,4],
y=[1,2,3,4],
hoverinfo='skip'
)
【讨论】:
【参考方案2】:from plotly.offline import plot
import plotly.graph_objs as go
def spline(x_axis,loop):
trace = go.Scatter(
x = x_axis,
y = loop[i],
fill = 'tonexty',
mode ='lines',
showlegend = False,
hoverinfo='none'
)
data = [trace]
layout = go.Layout(
title='Graph title here',
height=600,
xaxis=dict(
autorange=True
),
yaxis=dict(
autorange=True
)
)
fig = go.Figure(data=data, layout=layout)
# plot(fig, filename='spline.html')
plot_div = plot(fig, output_type='div', include_plotlyjs=False)
return plot_div
【讨论】:
@Shinto_Joseph 你能否为你的代码添加一些解释 它被写成一个函数... spline_graph = plots.spline(x_axis,loop,column,spline_percent,final_row) 。这样你就可以得到一个脚本到变量 spline_graph 中,你可以将它传递并显示到html页面使用ajax而不刷新页面。 在上面的代码中只输入 x 轴和循环只是 y 轴。showlegend = False, hoverinfo='none' 将禁用悬停和图例 你必须从 plotly.offline import plot import plotly.graph_objs as go 导入它,并像上面的例子一样添加 go 散点图【参考方案3】:更通用的解决方案可能是设置 Layout 'hovermode' 属性,如下所示:
#...
layout = go.Layout(hovermode=False)
fig = go.Figure(data=data, layout=layout)
#...
此处为 Python 参考:https://plot.ly/python/reference/#layout
注意:这将禁用与该布局关联的所有跟踪的悬停文本...可能不是所需的行为。
【讨论】:
以上是关于禁用跟踪上的悬停信息,情节的主要内容,如果未能解决你的问题,请参考以下文章
SARSA-Lambda 实施中的情节之间的资格跟踪重新初始化