使用matplotlib的2D热图

时间:2014-07-31 11:52:18

标签: python matplotlib

我是python的新手,请耐心等待:

我一直试图绘制2D热图,类似于此处显示的那个:

http://mips.helmholtz-muenchen.de/plant/static/images/A_thal_LTRs.png

使用contourf或colorbar类,但它似乎不起作用。

我使用两个非常简单的数据集,如代码所示: `

import numpy as np
import matplotlib.pyplot as plt

abundance = [0.2,0.3,0.25,0.05,0.05,0.04,0.06]

grain_size = [200,100,70,50,10,5,1]

`

我希望grain_size数组是我的x_axis(在对数刻度上),我的颜色代表每个grain_size对应的丰度(所以0.2对应200,0.3对应100等...)

所以我知道我需要将我的丰度数组标准化以适应颜色条,但那又是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

import matplotlib.cm as cm

ab = np.array(abundance)
gs = np.array(grain_size)
ab_norm = ab/ab.max()*100
plt.matshow([ab_norm], cmap=cm.gist_rainbow_r) 
plt.xticks(range(7), gs)
plt.yticks(range(1), ["abundance"])
plt.colorbar()
plt.show()

ab

您可以通过选择另一个see here for some of them来更改色彩映射。

告诉我,如果不是这样,如果你不理解某事。 希望这会有所帮助。