[英]Change cmap transition points in matplotlib
有没有办法改变 matplotlib 中连续颜色图 (cmap) 的过渡值? 我想使用“vlag”为热图着色,但是我的值通常只在 0 到 0.6 之间(而不是 0-1)。 我可以重新规范化我的数据或使用 vmin 和 vmax,但是我很好奇是否有办法将 vlag 的转换点设置在 0-1 之间。 vlag(蓝、白、红)有3个colors。 设置转换点将允许在不同热图之间进行苹果对苹果的比较。
如果颜色图仅包含少量 colors,则可以使用BoundaryNorm指定过渡点。
对于具有平滑范围 colors 的颜色图, TwoSlopeNorm可让您移动开始发生过渡的点。
from matplotlib.colors import TwoSlopeNorm
import seaborn as sns # for the 'vlag' colormap
import numpy as np
x = np.linspace(0, 10, 200)
y = np.sin(x)**2
fig, axs = plt.subplots(ncols=2, figsize=(12, 4))
scat0 = axs[0].scatter(x, y, c=y, cmap='vlag')
axs[0].set_title('default norm')
plt.colorbar(scat0, ax=axs[0])
norm = TwoSlopeNorm(vmin=0., vcenter=0.3, vmax=1)
scat1 = axs[1].scatter(x, y, c=y, cmap='vlag', norm=norm)
axs[1].set_title('TwoSlopeNorm')
plt.colorbar(scat1, ax=axs[1])
plt.tight_layout()
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.