如何将热图颜色缩放为均匀的颜色分布?

时间:2014-07-13 14:06:24

标签: matplotlib

我正在绘制一个带有偏差值分布的简单热图

import numpy as np
import matplotlib.pyplot as plt
import random
import matplotlib

size=100
data=np.array([[random.expovariate(1) for _ in range(size)] for _ in range(size)])
fig, ax=plt.subplots()
heatmap=ax.pcolormesh(data, cmap=matplotlib.cm.Reds)
fig.colorbar(heatmap)

如果我可以更改颜色缩放以使得低于某个阈值的值是固定颜色(例如cmap中的最低颜色)并且所有其他值都缩放以显示更均匀的颜色分布(对于示例使用某些参数进行指数或功率重新缩放。)

是否有一种简单的方法可以在不更改数据值的情况下重新缩放我的色彩图?

1 个答案:

答案 0 :(得分:2)

如果您对比例的线性位感到满意,则有:

heatmap=ax.pcolormesh(data, cmap=matplotlib.cm.Reds, vmin=0, vmin=1)

现在颜色从0到1缩放。

如果您想要一个非线性色图,也可以。为了使它和相应的颜色条正确,你需要跳过一些箍。

nonlinear colormap, matplotlib的接受答案应该为您提供食谱。