Как отобразить метки набора данных внутри HoverTool на диаграмме Санки, используя Holoviews и Bokeh

Если вы просто хотите проверить, что у вас нет случайного мусора в поле (т. е. от спаммеров формы), это регулярное выражение должно делать красиво:

^[0-9+\(\)#\.\s\/ext-]+$

Обратите внимание, что он не имеет специальные правила для того, сколько цифр или какие числа действительны в этих цифрах, оно просто проверяет, что только цифры, скобки, тире, плюс, пробел, фунт, звездочка, период, запятая или буквы e, x, t.

Он должен быть совместим с международными номерами и форматами локализации. Предусматриваете ли вы необходимость разрешать квадратные, кудрявые или угловые скобки для некоторых регионов? (в настоящее время они не включены).

Если вы хотите поддерживать правила на каждую цифру (например, в кодах и префиксах в США (коды обмена) должны находиться в диапазоне 200-999), хорошо, хорошо удачи вам. Сохранение сложного набора правил, который может быть устаревшим в любой момент в будущем в любой стране мира, не выглядит забавным.

И хотя удаление всех / большинства нечисловых символов может хорошо работать на сервере (особенно если вы планируете передавать эти значения в дозвонщик), вы можете не захотеть вогнать вход пользователя во время проверки, особенно если вы хотите, чтобы они вносили поправки в другое поле.

0
задан Petr Wolf 24 March 2019 в 19:39
поделиться

1 ответ

Самый простой способ сделать это - просто предоставить метки вместо индексов для элемента Sankey:

nodes = ["PhD", "Career Outside Science",  "Early Career Researcher", "Research Staff",
         "Permanent Research Staff",  "Professor",  "Non-Academic Research"]
edges = [
    (0, 1, 53), (0, 2, 47), (2, 6, 17), (2, 3, 30), (3, 1, 22.5), (3, 4, 3.5), (3, 6, 4.), (4, 5, 0.45)   
]

# Replace the indices with the labels
edges = [(nodes[s], nodes[e], v) for s, e, v in edges]

value_dim = hv.Dimension('Percentage', unit='%')
careers = hv.Sankey(edges, ['From', 'To'], vdims=value_dim)
careers.opts(labels='index', tools=['hover'])

enter image description here

Тем не менее, я думаю, что ваше ожидание того, что определение labels заставит его использовать столбец меток в узлах для извлечения меток наведения края, имеет смысл, и метки могут не быть уникальными, поэтому описанный выше подход в целом неприменим. Я отправлю вопрос в HoloViews.

0
ответ дан philippjfr 24 March 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: