Добавьте всплывающую подсказку на график рассеяния - PullRequest
1 голос
/ 18 марта 2020

У меня есть следующий фрейм данных, который я хочу представить в точечной диаграмме для x и y:

    x   y   z   M
0   52.8    34.2    94.232224   1.347599
1   48.4    34.2    95.520638   1.410438
2   44.0    34.2    95.688486   1.353541
3   39.6    34.2    93.810213   1.478019
4   35.2    34.2    95.180400   1.163945

Когда я наведу курсор на квадраты, я хочу иметь всплывающую подсказку, показывающую мое значение z в текстовом поле , Для этого я использую сюжетно. Вот мой код:

fig = go.Figure(go.Scatter(mode="markers", x=data['x'], y=data['y'], marker_symbol="square",

                           hovertemplate =
"<b>%{marker.symbol} </b><br><br>" +
    "Z: %{z}<br>",

                           marker_line_color="midnightblue", 
                           marker_color="lightskyblue", 
                           marker_line_width=1, marker_size=5))
fig.show()

Можно ли показать z на графике в виде всплывающей подсказки? Это не работает для меня.

1 Ответ

1 голос
/ 23 марта 2020

Просто включите '%{text}' в hovertemplate и назначьте ['z {}'.format(i) for i in data['z']] на text в go.Scatter(), чтобы получить:

enter image description here

Полный код:

import pandas as pd

data= pd.DataFrame({'x': {0: 52.8, 1: 48.4, 2: 44.0, 3: 39.6, 4: 35.2},
 'y': {0: 34.2, 1: 34.2, 2: 34.2, 3: 34.2, 4: 34.2},
 'z': {0: 94.232224, 1: 95.520638, 2: 95.688486, 3: 93.810213, 4: 95.1804},
 'M': {0: 1.347599,
  1: 1.4104379999999999,
  2: 1.3535409999999999,
  3: 1.478019,
  4: 1.163945}})

fig = go.Figure(go.Scatter(mode="markers", x=data['x'], y=data['y'], marker_symbol="square",
                           hovertemplate = 'y: %{y}'+'<br>x: %{x}<br>'+'%{text}',
                           text = ['z {}'.format(i) for i in data['z']],
                           marker_line_color="midnightblue", 
                           marker_color="lightskyblue", 
                           marker_line_width=1, marker_size=5))
fig.show()
...