<p>您可以使用<a href="http://matplotlib.org/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap" rel="nofollow noreferrer">LinearSegmentedColormap</a>:</p>
<p>这样,您需要在字典中设置颜色查找表,例如下面的“cdict”。</p>
<pre><code>cdict = {'red': [(0.0, 0.0, 0.0),
(0.15, 0.01, 0.01),
(0.35, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 0.0, 0.0),
(1.0, 0.0, 1.0)],
'blue': [(0.0, 0.0, 1.0),
(0.9, 0.01, 0.01),
(1.0, 0.0, 1.0)]}
</code></pre>
<p>这显示了值之间的转换。我将红色设置为在<code>t1/t2_max</code>(0.15到0.35)的值周围变化很大,而蓝色设置为在<code>t2/t2_max</code>(0.9到1.0)的值周围变化很大。格林什么也不做。我建议阅读<a href="http://matplotlib.org/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap" rel="nofollow noreferrer">docs</a>来了解它是如何工作的。(请注意,这可以自动在您的值周围自动变化)。然后我调整了代码以显示图表:</p>
<pre><code>import matplotlib.colors as col
my_cmap = col.LinearSegmentedColormap('my_colormap', cdict)
plt.figure(figsize=(22.0, 15.50))
p = plt.subplot(1,2,1)
colors = my_cmap(t1/t2_max)
p.scatter(x, y, edgecolors=colors, s=15, linewidths=4)
p = plt.subplot(1,2,2)
colors = my_cmap(t2/t2_max)
p.scatter(x, y, edgecolors=colors, s=15, linewidths=4)
plt.subplots_adjust(left=0.2)
cbar_ax = plt.axes([0.10, 0.15, 0.05, 0.7])
sm = plt.cm.ScalarMappable(cmap=my_cmap, norm=plt.Normalize(vmin=0, vmax=t2_max))
sm._A = []
cbar = plt.colorbar(sm,cax=cbar_ax)
plt.show()
</code></pre>
<p><img src="https://i.stack.imgur.com/mrsxg.png" alt="enter image description here"/></p>