使用matplotlib绘制2D热图
我刚开始学习Python,请多多包涵:
我一直在尝试绘制一个二维热图,类似于这里展示的:
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轴(使用对数刻度),而颜色则表示与每个grain_size对应的丰度(比如0.2对应200,0.3对应100等等……)
所以我知道我需要将丰度数组进行归一化,以适应颜色条,但接下来该怎么做呢?
非常感谢!
1 个回答
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()
你可以通过选择其他的颜色映射来改变颜色,这里有一些例子可以看看。
如果这不是你想要的,或者你有不明白的地方,告诉我哦。希望这能帮到你。