如何调整散景热图的宽度并消除周围的空白

时间:2019-02-21 05:34:48

标签: python-3.x bokeh heatmap

我想更改热图单元的宽度,以使其尺寸为正方形(偶数)。理想情况下,单元格很小且为正方形,因此我仅用一列数据就可以拟合多个热图。我想重现这样的东西:

nice heatmap

我当前的代码制作的一个热图太宽了,有很多空白,还有一个奇怪的y位置,该位置切断了底部单元格。不知道发生了什么。谢谢。 bokeh heatmap

def genHeatMap():
colours = ['#67d33d',
 '#76d74f',
 '#84da5f',
 '#91de6e',
 '#9ce17b',
 '#a6e488',
 '#b1e795',
 '#bbeaa1',
 '#91de6e',
 '#9ce17b']
values = [1.0,
 0.17647058823529413,
 0.08021390374331551,
 0.04054054054054054,
 0.06,
 0.07894736842105263,
 0.07317073170731707,
 0.05813953488372093,
 0.1320754716981132,
 0.0]
y_labels=['103', '134', '140', '185', '235', '292', '299', '431', '566', '659']
y = list(range(10)) 
x = ['a'] * 10 
df = {'xs':x,'ys':y,'value':values,'colour':colours,'labels':y_labels}
p = figure(x_range='a',y_range=y_labels,plot_width=300,plot_height=300,
          tooltips = [('CSID', f'@labels-103'), ('Tanimoto', '@value')])
p.rect('xs', 'ys', width=1, height=1, source=df,color='colour', line_color="black")
p.toolbar.logo = None
p.min_border_bottom = 20
p.min_border_left = 0
p.min_border_right = 0
p.min_border_top = 0
p.xaxis.major_tick_line_color = None 
p.xaxis.minor_tick_line_color = None 
p.xaxis.major_label_text_font_size = '0pt'
return p