Боке: использовать HTML в метках оси? - PullRequest
0 голосов
/ 04 июля 2018

Я очень новичок в Боке. Я пытаюсь сделать кликабельные ссылки на одном из моих графиков, точнее на оси X (на галочках).

Мой вопрос: можно ли использовать HTML-код в метках тиков, например, чтобы заменить текст гипертекстовыми ссылками?

Взяв один из примеров из документации Bokeh, вот моя наивная попытка (замена на одной из этикеток от Apples до <a>Apples</a>):

from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral6
from bokeh.plotting import figure

output_file("bar_colors.html")

fruits = ['<a>Apples</a>', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
counts = [5, 3, 4, 2, 4, 6]

source = ColumnDataSource(data=dict(fruits=fruits, counts=counts, color=Spectral6))

p = figure(x_range=fruits, y_range=(0,9), plot_height=350, title="Fruit Counts",
           toolbar_location=None, tools="")

p.vbar(x='fruits', top='counts', width=0.9, color='color', legend="fruits", source=source)

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

show(p)

Это приводит, как вы уже догадались, к сюжету, где я <a>Apples</a> записан в виде текста ...

Как получить правильную гипертекстовую ссылку?

1 Ответ

0 голосов
/ 04 июля 2018

Короткий ответ - нет. Bokeh делает это на HTML Canvas, который является низкоуровневой областью растрового изображения. HTML-холст напрямую не поддерживает какие-либо элементы типа DOM (например, гиперссылки) на нем.

Вероятно, есть несколько способов обойти это:

  • Расширяемость Bokeh Вы можете создать собственное расширение, которое будет отображать тики совершенно другим способом, то есть путем абсолютного позиционирования реальных элементов Div на вершине холста вместо выдачи команд рисования холста. Это потребует много бухгалтерского учета и точного позиционирования. Я бы не назвал это тривиальным, и, вероятно, для работы понадобилась бы некоторая итерация туда-сюда, так что публичный список рассылки был бы лучшим местом для обсуждения этой возможности.

  • Существует открытый вопрос #601: добавлена ​​поддержка событий щелчка по категориальным осям , которая имеет отношение к делу. Если бы это было реализовано, это предложило бы подобную возможность (но без реальных гиперссылок). Вполне возможно, что эта идея может быть расширена, чтобы включить любые тиковые ярлыки, а не только категориальные. Лучшее место, чтобы оставить свой отзыв об этой потенциальной функции - ссылка GitHub.

...