Python 使用matplotlibs colorbar将一个值设置为特定颜色

Python 使用matplotlibs colorbar将一个值设置为特定颜色,python,matplotlib,Python,Matplotlib,我有以下代码: matplotlib.pyplot.figure() matplotlib.pyplot.imshow( myValues ) matplotlib.pyplot.colorbar() matplotlib.pyplot.title( 'Values' ) matplotlib.pyplot.show() 这将创建一个漂亮的默认颜色贴图。MyValue在[-1.0,1.0]的范围内(以后可能会更改)。 我想把所有0.0的值都涂成白色。我怎样才能做到这一点 问候,, Maecky

我有以下代码:

matplotlib.pyplot.figure()
matplotlib.pyplot.imshow( myValues )
matplotlib.pyplot.colorbar()
matplotlib.pyplot.title( 'Values' )
matplotlib.pyplot.show()
这将创建一个漂亮的默认颜色贴图。MyValue在[-1.0,1.0]的范围内(以后可能会更改)。 我想把所有0.0的值都涂成白色。我怎样才能做到这一点

问候,,
Maecky

这应该可以做到:

from matplotlib import pyplot as plt
import numpy as np

plt.figure()
myValues = np.random.random((10,10))*2 -1
plt.imshow( myValues ,cmap = "RdBu_r" , vmin=-1, vmax=1)
plt.colorbar()
plt.title( 'Values' )
plt.show()
其目的是:

1-选择中间为白色的颜色贴图,例如RdBu_r。有关更多信息,请参阅:

2-将最小值和最大值固定在距离零相等的位置。在您的情况下,vmin=-1,vmax=1是一个明显的选择

此解决方案的问题是,如果要更改数据集的范围,[vmin,vmax]之外的值都将映射到相同的颜色。这可能是一个问题,也可能不是,取决于您想做什么