Боке сюжетные категориальные галочки на числовой оси? - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть этот боке-график , где отметки в данный момент указывают на начальную позицию новой хромосомы с пятью хромосомами (так, на оси х в позиции 37 третья хромосома начинается и заканчивается в 53, принцип sampe для оси y).

Я бы хотел добавить дополнительные (второстепенные?) Категориальные отметки между этими координатами, чтобы они были более четкими, немного похожими на пример вложенных категорий hvar с сайта bokeh, но вместо фруктов вы иметь имена хромосом.

У меня есть DFtotal (отсортировано по value) в качестве ввода:

      xmar     xname   ygen      yname     value
3368    46  c3_10996  13201  AT3G27420  3.000099
2583    36  c2_18753   9491  AT2G40440  3.000142
2650    37  c3_00580  10335  AT2G16360  3.000501
3946    57  c4_03833  16262  AT4G02830  3.000592
914     12  c1_18433  14488  AT3G55120  3.001359

А это chDF с данными хромосомы:

chname  Ymiddle Xmiddle  Ystart  Xstart
ch1      4461.5    11.0       0       0
ch2     11572.0    29.5    8924      23
ch3     17703.5    45.0   14221      37
ch4     23715.5    61.5   21187      54
ch5     30070.5    79.0   26245      70

Мой код для построения на данный момент выглядит следующим образом:

#Add tools to plot
TOOLS= "hover, pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,save"

#Create empty figure
p = figure(tools=TOOLS)


#----- ADD CATEGORIAL TICKS IN THIS PART -----#
mtick = list(chDF.Xstart)
gtick = list(chDF.Ystart)

p.xaxis[0].ticker=FixedTicker(ticks = mtick)
p.xgrid[0].ticker=FixedTicker(ticks = mtick) 
p.yaxis[0].ticker=FixedTicker(ticks = gtick)  
p.ygrid[0].ticker=FixedTicker(ticks = gtick)

#---------------------------------------------#

#Create CDS
SOURCE = ColumnDataSource(DFtotal)

#Create palette
LCM = LinearColorMapper( palette=list(reversed(np.array(Reds9))), low = 
min(DFtotal['value']),
                     high = max(DFtotal['value']) )

#Create plot
p.circle(x='xmar', y='ygen', source=SOURCE, fill_color={'field':'value', 
'transform':LCM},
     line_color={'field':'value', 'transform':LCM}, size=6, fill_alpha=0.8)

#show
output_file("test.html", title="test")
show(p)

Я буквально понятия не имею, как решить эту проблему

...