散景热图传奇

时间:2015-04-02 12:49:41

标签: python matplotlib bokeh

我正在尝试为散景中的热图创建一个图例。我决定创建一个单独的绘图,它位于我的热图的右侧是最好的方法,因为有很多自定义计算。我有以下代码但由于某种原因只显示前两种颜色。我似乎无法找到问题所在。另外,如何在此图表中显示自定义标签而不是y轴值?例如,我如何显示' Label_1'代替' 1'在y轴上?

由于

from bokeh.plotting import ColumnDataSource, figure, output_file, show
import numpy as np
from collections import OrderedDict

color = []
val = []

color.append('rgb(255,255,255)')
val.append('1')
color.append('rgb(204,229,255)')    
val.append('2')
color.append('rgb(153,204,255)')     
val.append('3')
color.append('rgb(102,178,255)')     
val.append('4')
color.append('rgb(51,153,255)')   
val.append('5')
color.append('rgb(0,128,255)') 
val.append('6')
color.append('rgb(0,102,204)')                
val.append('7')
color.append('rgb(0,25,51)')
val.append('8')

source = ColumnDataSource(
    data=OrderedDict(color=color,val=val))

p = figure(title=None,x_range=[0,1], y_range=val)

p.rect([0,1], 'val', 1, 1, source=source, color='color')

p.plot_width = 100
p.plot_height = 500

p.grid.grid_line_color = None
p.axis.axis_line_color = None
p.axis.major_tick_line_color = None
p.axis.major_label_text_font_size = "9pt"
p.axis.major_label_standoff = 0
p.xaxis.major_label_orientation = np.pi/2

show(p) 

output_file('heatmap_legend.html')

1 个答案:

答案 0 :(得分:0)

这是酒吧'高度'的问题。您需要为传递给Bokeh的数组中的每个元素指定高度1。