散景图在数字轴上的分类刻度?

时间:2018-11-04 17:22:58

标签: plot label bokeh axis categorical-data

我有this bokeh plot,此刻的刻度表示新染色体的起始位置,该染色体共有五个染色体(因此在x轴的37位置,第三个染色体的起点和终点为53,样品y轴原理)。

我想在这些坐标之间添加额外的(次要?)分类刻度,这样会更清晰一些,有点像bokeh网站上的nested categories hvar example,但是却没有水果,而是具有染色体名称。

我有这个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)

我真的不知道如何解决这个问题

0 个答案:

没有答案