在Python中自定义颜色栏(截断并添加更多颜色)

在Python中自定义颜色栏(截断并添加更多颜色),python,matplotlib,customization,contour,colorbar,Python,Matplotlib,Customization,Contour,Colorbar,我是Python新手。你能帮我定制一下颜色条吗。我已经尝试过网络上的几种变体,但它们不能正常工作。我有以下带有颜色条的图表: 代码如下: set_cmap('rainbow') contourf(0.5*(data1+data2)) xlabel (r'across track $\rm\,[pixels]$') ylabel (r'along track $\rm\,[pixels]$') cbar = plt.colorbar() cbar.set_label('radiance', r

我是Python新手。你能帮我定制一下颜色条吗。我已经尝试过网络上的几种变体,但它们不能正常工作。我有以下带有颜色条的图表:

代码如下:

set_cmap('rainbow')
contourf(0.5*(data1+data2))
xlabel (r'across track $\rm\,[pixels]$')
ylabel (r'along track $\rm\,[pixels]$')

cbar = plt.colorbar()
cbar.set_label('radiance', rotation=270)
title('1.6 mue (avg: 5992-6012 cm^(-1))')
# Show the major grid lines 
plt.grid(b=True, which='major', color='#666666', linestyle='-')
# Show the minor grid lines 
plt.minorticks_on()
plt.grid(b=True, which='minor', color='#666666', linestyle='-', alpha=0.4)`fig=plt.figure()
我需要将颜色栏截断为0到9之间的值,即0,1,2,3,4,5,6,7,8,9,并为每个值创建新颜色

诸如cbar=plt.clim(0,9)之类的p.S.命令不起作用


提前谢谢

使用
levels=
可以告诉
tourtf
哪些值需要新的级别。在这种情况下,选择
levels=0,1,2,…,9似乎可以达到您想要的效果

请注意,颜色是在调用
contourf
时确定的。函数
colorbar
只是尝试可视化所使用的颜色

下面的代码首先创建一些介于0和20之间的随机数据,异常值为50。对
tourtf
的默认调用与显式设置的
levels
进行比较

导入matplotlib.pyplot作为plt
从matplotlib.patches导入椭圆
将numpy作为np导入
N、 M=100300
x=np.随机.均匀(-0.1,0.1,(N,M)).cumsum(轴=1).cumsum(轴=0)
x-=x.min()
x*=20/x.最大值()
x[-1,-1]=50
图(ax1,ax2)=plt.子批次(ncols=2,figsize=(12,4))
cont1=ax1.contourf(x,cmap='rainbow')
打印颜色条(续1,ax=ax1)
cont2=ax2.contourf(x,levels=np.arange(10),cmap='rainbow')
打印颜色条(续2,ax=ax2)
plt.show()

@JohanC终于成功了!非常感谢!!;)如果这回答了你的问题,你可能会考虑投票和/或答案。