繁体   English   中英

更改 matplotlib 中的 cmap 过渡点

[英]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()

TwoSlopeNorm 示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM