此问题已在此处有答案:
Set Colorbar Range(6个回答)
set colorbar range with contourf(1个答案)
18天前关闭
如何减少与contourf一起使用时的颜色限制?来自图形本身的颜色边界被很好地设置为“vmin”和“vmax”,但颜色边界没有被修改。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(20)
y = np.arange(20)
data = x[:,None]+y[None,:]
X,Y = np.meshgrid(x,y)
vmin = 0
vmax = 15
#My attempt
fig,ax = plt.subplots()
contourf_ = ax.contourf(X,Y,data, 400, vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
cbar.set_clim( vmin, vmax )
# With solution from https://stackoverflow.com/questions/53641644/set-colorbar-range-with-contourf
levels = np.linspace(vmin, vmax, 400+1)
fig,ax = plt.subplots()
contourf_ = ax.contourf(X,Y,data, levels=levels, vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
plt.show()
来自“Set Colorbar Range in matplotlib“的解决方案适用于pcolormesh,但不适用于contourf。我想要的结果如下,但使用contourf。
fig,ax = plt.subplots()
contourf_ = ax.pcolormesh(X,Y,data[1:,1:], vmin=vmin, vmax=vmax)
cbar = fig.colorbar(contourf_)
如果限制被扩展,则来自“set colorbar range with contourf“的解决方案是可以的,但如果限制被减少,则不行。
我用的是matplotlib 3.0.2
2条答案
按热度按时间ymzxtsji1#
下面的代码总是生成一个颜色与图形中的颜色相对应的条形图,但是对于
[vmin,vmax]
范围之外的值不显示颜色。它可以被编辑(见内联注解),以给予你想要的结果,但是条形图的颜色仍然对应于图中的颜色,这仅仅是由于使用了特定的颜色图(我认为):
总是正确的解决方案,不能处理
[vmin,vmax]
以外的值:x1c 0d1x请求的解决方案:/skin/images/pcmhv.png
dffbzjpn2#
我不知道它已经存在多久了,但在matplotlib 3.5.0中,contourf中有一个“extend”选项,它在颜色栏上显示一个可爱的小箭头。请参阅contourf帮助页面。在您的场景中,我们可以做