绘制热图python

绘制热图python,python,Python,我想从excel创建数据集的热图。 例如,以下数据集:。所以x和y值就是x和y坐标。如果z值较高,我希望坐标较暗(例如红色),如果z值较低,坐标应较亮(例如蓝色) 我原以为这段代码可以用,但我犯了一些错误。我怎样才能解决这个问题? 我得到的错误:IndexError:列表索引超出范围。它指出它与“PLT.hexbin(x,y,C=z,gridsize=gridsize,cmap=CM.jet,bins=50)”这一行有关 试试这个?与此一起(将excel导入numpy) from matplot

我想从excel创建数据集的热图。 例如,以下数据集:。所以x和y值就是x和y坐标。如果z值较高,我希望坐标较暗(例如红色),如果z值较低,坐标应较亮(例如蓝色)

我原以为这段代码可以用,但我犯了一些错误。我怎样才能解决这个问题? 我得到的错误:IndexError:列表索引超出范围。它指出它与“PLT.hexbin(x,y,C=z,gridsize=gridsize,cmap=CM.jet,bins=50)”这一行有关

试试这个?与此一起(将excel导入numpy)
from matplotlib import pyplot as PLT
from matplotlib import cm as CM
import numpy as NP
import xlrd

file_location = "C:/Users/Niels/Desktop/Test.xlsx"
workbook = xlrd.open_workbook(file_location)
sheet1 = workbook.sheet_by_index(0)
colomnValues = sheet1.col_values(2)


x = NP.linspace(0,10,100)
y = NP.linspace(0,1,100)
X, Y = NP.meshgrid(x, y)
x = X.ravel()
y = Y.ravel()
z = colomnValues
gridsize=50
PLT.subplot(111)

PLT.hexbin(x, y, C=z, gridsize=gridsize, cmap=CM.jet, bins=50)
PLT.axis([x.min(), x.max(), y.min(), y.max()])

cb = PLT.colorbar()
cb.set_label('mean value')
PLT.show()