Python Bokeh获得空热图

Python Bokeh获得空热图,python,heatmap,bokeh,Python,Heatmap,Bokeh,我正在尝试制作热图,就像使用Bokeh一样。 这是我的数据框数据,我正试图从中制作热图 Day Code Total 0 1 6001 44 1 1 6002 40 2 1 6006 8 3 1 6008 2 4 1 6010 38 5 1 6011 1 6 1 6014 19 7 1 6018 1 8 1 6019 1 9 1 6023 10

我正在尝试制作热图,就像使用
Bokeh
一样。 这是我的数据框
数据
,我正试图从中制作热图

    Day Code    Total
 0  1   6001    44
 1  1   6002    40
 2  1   6006    8
 3  1   6008    2
 4  1   6010    38
 5  1   6011    1
 6  1   6014    19
 7  1   6018    1
 8  1   6019    1
 9  1   6023    10
 10 1   6028    4
 11 2   6001    17
 12 2   6010    2
 13 2   6014    4
 14 2   6020    1
 15 2   6028    2
 16 3   6001    48
 17 3   6002    24
 18 3   6003    1
 19 3   6005    1
 20 3   6006    2
 21 3   6008    18
 22 3   6010    75
 23 3   6011    1
 24 3   6014    72
 25 3   6023    34
 26 3   6028    1
 27 3   6038    3
 28 4   6001    19
 29 4   6002    105
 30 5   6001    52
 ...
这是我的代码:

 from bokeh.io import output_file
 from bokeh.io import show
 from bokeh.models import (
     ColumnDataSource,
     HoverTool,
     LinearColorMapper
 )
 from bokeh.plotting import figure

 output_file('SHM_Test.html', title='SHM', mode='inline')

 source = ColumnDataSource(Data)
 TOOLS = "hover,save"

 # Creating the Figure
 SHM = figure(title="HeatMap",
       x_range=[str(i) for i in range(1,32)], 
       y_range=[str(i) for i in range(6043,6000,-1)],
       x_axis_location="above", plot_width=400, plot_height=970,
       tools=TOOLS, toolbar_location='right')

 # Figure Styling
 SHM.grid.grid_line_color = None
 SHM.axis.axis_line_color = None
 SHM.axis.major_tick_line_color = None
 SHM.axis.major_label_text_font_size = "5pt"
 SHM.axis.major_label_standoff = 0
 SHM.toolbar.logo = None
 SHM.title.text_alpha = 0.3

 # Color Mapping
 CM = LinearColorMapper(palette='RdPu9', low=Data.Total.min(), high=Data.Total.max())

 SHM.rect(x='Day', y="Code", width=1, height=1,source=source,
          fill_color={'field': 'Total','transform': CM})

 show(SHM)
当我执行我的代码时,我没有得到任何错误,但我只得到一个空帧,如下图所示


我一直在努力寻找我的错误在哪里,为什么我会得到这个??我的错误在哪里?

代码的问题在于为x轴和y轴范围设置的数据类型以及ColumnDataSource的数据类型不同。您正在将
x_范围
y_范围
设置为字符串列表,但查看csv格式的数据时,它将被视为整数

在您的情况下,您需要确保您的Day和Code列处于 字符串格式

这可以很容易地完成使用熊猫包与

Data['Day'] = Data['Day'].astype('str')
Data['Code'] = Date['Code'].astype('str')

“source=ColumnDataSource(Data)”中的数据是什么?如果“Data”来自csv文件,则其结构如第一个代码部分所示。