Lud*_*igH 4 matplotlib colormap
我使用以下代码段创建了一个热图:
import numpy as np
import matplotlib.pyplot as plt
d = np.random.normal(.4,2,(10,10))
plt.imshow(d,cmap=plt.cm.RdBu)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
现在,由于数据的中间点不是 0,因此颜色图值为 0 的单元格不是白色,而是略带红色。
如何强制颜色图使 max=blue、min=red 和 0=white?
使用一个DivergingNorm.
注意:从 matplotlib 3.2 开始DivergingNorm更名为TwoSlopeNorm
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
d = np.random.normal(.4,2,(10,10))
norm = mcolors.DivergingNorm(vmin=d.min(), vmax = d.max(), vcenter=0)
plt.imshow(d, cmap=plt.cm.RdBu, norm=norm)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)