在跟踪中设置hoverinfo时,Python Plotly xaxis悬停文本消失

时间:2018-06-26 19:09:49

标签: python jupyter-notebook plotly

我正在使用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)

这给了我enter image description here

现在,尝试在悬停时显示文本:

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',
    )
)

,将显示以下图表,使悬停时的x轴信息消失。 enter image description here

我尝试在图表布局属性中编辑xaxis,但没有成功。

如何像在第一个图表中一样显示悬停时的X轴信息?

1 个答案:

答案 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)

结果显示在此图中:

enter image description here