绘制热图python

时间:2017-03-02 12:37:33

标签: python

我想从excel创建数据集的热图。 例如,以下数据集:https://i.stack.imgur.com/fXZS5.png。所以x和y值是x坐标和y坐标。如果z值高,我希望该坐标更暗(例如红色),如果z值低,则它应该更亮(例如蓝色)。

我认为这段代码可行,但我遇到了一些错误。我怎么解决这个问题? 我得到的错误:IndexError:列表索引超出范围。它指出它必须对" PLT.hexbin(x,y,C = z,gridsize = gridsize,cmap = CM.jet,bins = 50)"

的行做一些事情。
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()

0 个答案:

没有答案