Текст на xaxis наведения Python Plotly исчезает, если в трассировке задана hoverinfo - PullRequest
0 голосов
/ 26 июня 2018

Я строю несколько (2) строк из временных рядов с plotly (v 2.7) в блокноте Jupyter. Мне бы хотелось, чтобы при наведении указатель оси отображался и форматированный текст для одной из строк.

Сначала у меня было

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 голосов
/ 26 июня 2018

Через некоторое время я нашел решение методом проб и ошибок, хочу документировать его здесь.

Если любой trace в списке data содержит атрибут hoverinfo, информация о оси x при наведении курсора исчезает. Информация X будет отображаться только в трассах, содержащих x в hoverinfo. Так что по умолчанию в других следах. Вот почему второй график в вопросе начал отображать дату (информация оси x) на трассе houses, даже если отредактированная трасса была 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...