我正在使用Jupyter笔记本中的plotly(v 2.7)从时间序列中绘制多条(2)行。我希望在悬停时显示轴标签,并为其中的一行添加格式文本。
首先,我有
data = []
name = 'houses'
data.append(
go.Scatter(
x=df.index,
y=df[name],
name=name,
)
)
name = 'vazamento'
scale = 50
data.append(
go.Scatter(
x=df.index,
y=df[name]*scale,
name='leaks' + ' (ratio {0}:1)'.format(scale),
)
)
fig = go.Figure(data=data)
iplot(fig)
现在,尝试在悬停时显示文本:
name = 'vazamento'
scale = 50
data.append(
go.Scatter(
x=df.index,
y=df[name]*scale,
name='leaks' + ' (ratio {0}:1)'.format(scale),
# Added the two lines below
text=df[name].apply(lambda x: "{0:.0f}".format(x)+" - ")+str('leaks'),
hoverinfo='text',
)
)
我尝试在图表布局属性中编辑xaxis,但没有成功。
如何像在第一个图表中一样显示悬停时的X轴信息?
答案 0 :(得分:2)
一段时间后,我通过反复试验找到了解决方案,我想在这里记录下来。
当trace
列表中的任何data
包含hoverinfo
属性时,悬停时的x轴信息就会消失。 X信息仅显示在hoverinfo
中包含x的迹线中。因此,默认情况下,在其他跟踪中。这就是问题第二张图表开始在houses
跟踪上显示日期(x轴信息)的原因,即使编辑的跟踪是leaks
。
因此,为了实现我的目标,我必须向图中的每个迹线添加hoverinfo='x+SOMETHING'
:
data = []
name = 'houses'
data.append(
go.Scatter(
x=df.index,
y=df[name],
name=name,
# Added this line
hoverinfo='x+y',
)
)
name = 'vazamento'
scale = 50
data.append(
go.Scatter(
x=df.index,
y=df[name]*scale,
name='leaks' + ' (ratio {0}:1)'.format(scale),
# Added the 2 lines below
text=df[name].apply(lambda x: "{0:.0f}".format(x)+" - ")+str('leaks'),
hoverinfo='x+text',
)
)
fig = go.Figure(data=data)
iplot(fig)
结果显示在此图中: