2016-11-06 5 views
1

У меня есть кадр данных с колонками с именами игроков и их статистикой. Я рисую две разные статистики, чтобы имена игроков отображались под каждой точкой на диаграмме рассеяния.Добавление меток на участок Bokeh

Это то, что у меня есть пока, но оно не работает. Для текста я предполагаю, что это список имен, которые я хочу под каждой точкой на сюжете, и источник - это то место, откуда происходят имена.

p = Scatter(dt,x='off_rating',y='def_rating',title="Offensive vs. Defensive Eff",color="navy") 
labels = LabelSet(x='off_rating',y='def_rating',text="player_name",source=dt) 
p.add_layout(labels) 

ответ

6

Вы на правильном пути. Однако source для LabelSet должен быть источником данных. Вот пример кода.

from bokeh.plotting import show, ColumnDataSource 
from bokeh.charts import Scatter 
from bokeh.models import LabelSet 
from pandas.core.frame import DataFrame 

source = DataFrame(dict(off_rating=[66, 71, 72, 68, 58, 62], 
         def_rating=[165, 189, 220, 141, 260, 174], 
         names=['Mark', 'Amir', 'Matt', 'Greg', 'Owen', 'Juan'])) 


p = Scatter(source, x='off_rating', y='def_rating', 
      title="Offensive vs. Defensive Eff", color="navy") 

labels = LabelSet(x='off_rating', y='def_rating', text='names', level='glyph', 
        x_offset=5, y_offset=5, source=ColumnDataSource(source), render_mode='canvas') 


p.add_layout(labels) 

show(p) 
+0

Отличное решение! – MaxU

+0

Да, это работает. что, если я хотел бы добавить текст внутри сюжета в общем, что-то комментировать? – jhaywoo8

Смежные вопросы