У меня есть этот боке-график , где отметки в данный момент указывают на начальную позицию новой хромосомы с пятью хромосомами (так, на оси х в позиции 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)
Я буквально понятия не имею, как решить эту проблему